Windows Powershell ใช้เวลานานในการเริ่มต้นครั้งแรกหลังจากลงชื่อเข้าใช้ Windows


4

ฉันมักใช้ windows powershell แทนที่จะสั่งพรอมต์บน Windows ฉันสังเกตว่าเมื่อฉันเริ่มใช้งานเป็นครั้งแรกหลังจาก Windows เริ่มทำงานจะใช้เวลานานกว่าที่พรอมต์คำสั่งจะปรากฏขึ้น

เพื่อดูแลปัญหานี้ฉันเริ่มแล้วปิดทันทีแล้วเริ่มใหม่อีกครั้ง ถ้าฉันทำสิ่งนี้มันจะเริ่มขึ้นทันที

มีวิธีที่จะทำให้แน่ใจว่าพรอมต์คำสั่งขึ้นมาทันทีแทนที่จะต้องแฮ็คตัวเล็ก ๆ นี้หรือไม่?


@DaveRook ฉันคิดว่าฉันทำได้ แต่จะไม่เริ่มต้นขึ้นที่ windows login โดยอัตโนมัติหรือไม่ ฉันไม่ต้องการสิ่งนั้น ฉันต้องการที่จะลบความล่าช้าเมื่อฉันเริ่มมันเป็นครั้งแรกหลังจากที่ Windows เข้าสู่ระบบ
Aseem Bansal

@DaveRook ไม่ว่าหลังจากการตั้งค่าเฉพาะเพื่อโหลดสิ่งที่ทำกับ Powershell หรือไม่? ฉันไม่ได้ทำอะไรแบบนั้น
Aseem Bansal

คำตอบ:


5

PowerShell อาศัย . NET Frameworkคุณสามารถลองอัปเดตได้ นอกจากนี้ฉันสังเกตเห็นปัญหาสองสามข้อกับสคริปต์ในคำตอบอื่น ๆ

  • sort กำลังจะทำให้เกิดข้อผิดพลาดเนื่องจากรายการบางรายการไม่มี location
  • บางระบบจะได้รับประโยชน์จากการกลับมาใช้ngenซึ่งสคริปต์นั้นจะไม่ทำ

นี่คือเวอร์ชั่นที่ฉันแก้ไข

$Env:PATH = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
[AppDomain]::CurrentDomain.GetAssemblies() | % {
  $pt = $_.Location
  if (! $pt) {continue}
  if ($cn++) {''}
  $na = Split-Path -Leaf $pt
  Write-Host -ForegroundColor Yellow "NGENing $na"
  ngen install $pt
}

1
Set-Alias ngen (Join-Path ([System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) ngen.exe)
[AppDomain]::CurrentDomain.GetAssemblies() |
    sort {Split-path $_.location -leaf} |
    %{
        $Name = (Split-Path $_.location -leaf)
        if ([System.Runtime.InteropServices.RuntimeEnvironment]::FromGlobalAccessCache($_))
        {
            Write-Host "Already GACed: $Name"
        }else
        {
            Write-Host -ForegroundColor Yellow "NGENing      : $Name"
            ngen $_.location | %{"`t$_"}
         }
      }

ที่มา --- ดาวน์โหลดรหัสเป็นไฟล์ ps1

หากเวิร์กสเตชันไม่มีการเข้าถึงอินเทอร์เน็ตโดยตรงให้ยกเลิกการทำเครื่องหมายตัวเลือกนี้ใน IE: 'ตรวจสอบการเพิกถอนใบรับรองของผู้เผยแพร่' ภายใต้ขั้นสูง

คุณอาจต้องการตรวจสอบอีกครั้งและตรวจสอบว่าไม่มีโปรไฟล์ รันคำสั่งนี้และดูว่าสิ่งเหล่านี้เป็นจริงหรือไม่:

PS S:> $ profile.CurrentUserAllHosts, $ profile.CurrentUserCurrentHost, $ profile.AllUsersAllHosts, $ profile.AllUsersCurrentHost | ทดสอบเส้นทาง

แหล่ง

อ้างอิงแก้ไขเล็กน้อยจากต้นฉบับ

ปัญหา [อาจเกิดจาก] การตั้งค่าตัวแปรสภาพแวดล้อมของผู้ใช้ช้า ฉันเพิ่งรวมการเปลี่ยนแปลงที่ใช้ไฟล์ temp แทน

แหล่ง

ข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรสภาพแวดล้อมของผู้ใช้สามารถพบได้ที่นี่ซึ่งยังแนะนำว่าอาจเป็น Chrome ในความคิดเห็น:

เห็นได้ชัดว่าเป็น Google Chrome ที่เป็นผู้ร้ายที่นี่ หากฉันปิด Chrome การดำเนินการจะเสร็จสมบูรณ์ในไม่กี่วินาที สงสัยว่าทำไม Chrome จึงทำให้ข้อความเหล่านั้นหมดเวลา
ฉันคิดว่าสิ่งนี้อาจต้องมีการขุดลงในโค้ด Chrome ... อีกแนวคิดหนึ่งคือแอปพลิเคชัน Chrome มักจะทำงานในหลายสิบกระบวนการแต่ละแท็บและส่วนขยายอยู่ในอีกกระบวนการหนึ่ง บางทียิ่งเปิดแท็บ / ส่วนขยายมากขึ้นเท่าไหร่ก็จะยิ่งใช้เวลาในการประมวลผลข้อความของระบบมากขึ้น

เนื่องจากความผิดของคุณเกี่ยวกับมันใช้เวลานานในการโหลดครั้งแรก (แต่หลังจากนั้นอย่างรวดเร็ว) ลอง

... จากนั้นคุณจะเห็นเวลาที่ใช้ในการโหลด. NET, PSH และ Snapins ถ้าไม่เช่นนั้นน่าจะเกี่ยวข้องกับโปรไฟล์ (ทั้งโปรไฟล์ PSH หรือบางอย่างเช่นการติดต่อ AD1)

แหล่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.