題 Powershell在Windows 10上啟動緩慢


我在Windows 10(版本1703 - 創建者更新)上啟動PowerShell提示時遇到問題。

我的hw規格(相當快的機器):英特爾i5-7440HQ(四核)/ 32GB DDR4 RAM / 512三星SSD硬盤。

我試圖繞過配置文件和執行策略,但它沒有改變任何東西:

powershell -noprofile -ExecutionPolicy Bypass(Measure-Command {powershell“Write-Host 1”})。TotalSeconds

6,228067 

我的朋友使用沒有Creators Update的Windows 10的同一台筆記本電腦在不到0.5秒的時間內運行PowerShell。

還嘗試使用ngen.exe進行一些編譯,但它沒有幫助:

$env:path = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
[AppDomain]::CurrentDomain.GetAssemblies() | % {
  if (! $_.location) {continue}
  $Name = Split-Path $_.location -leaf
  Write-Host -ForegroundColor Yellow "NGENing : $Name"
  ngen install $_.location | % {"`t$_"}
}

不知道我該怎麼調查這個問題?

問候


6
2018-05-24 14:31


起源


您應該首先檢查您的配置文件腳本,看看是否有任何正在運行的延遲啟動。我的輸出是1.2774795秒。還有什麼機器,處理器,內存,其他東西在運行? - Julian Knight
powershell始終很慢。 但是女士忽視了那些抱怨 只有回應“powershell很快” - magicandre1981
如您所見 - 設置了noprofile選項。沒有不同。 - mike
我看到了。將此發送給MS,但他們忽略了powershell緩慢的任何報告 - magicandre1981
是的,但是解釋一下,同樣的筆記本電腦(兩個訂購的相同規格)如何在不到0.5秒的時間內啟動PowerShell並且超過6秒?差異是肯定我的創建者更新,第二個沒有此更新。我試圖使用Process Monitor尋找powershell.exe進程,但是6秒內沒有任何事情發生,然後所有都在日誌中。 - mike


答案:


您可以嘗試創建powershell.exe的快捷方式,右鍵單擊它>屬性,轉到選項卡選項,單擊“使用傳統控制台”。我的屏幕閱讀器(魔術和縮放文本)無法忍受隨著秋季更新而來的'新'çonsole(Powershell很慢)。遺留下來的一切都很好。


2
2018-01-15 10:36





我在相當一段時間內遇到了同樣的問題,直到PowerShell啟動失敗並出現以下錯誤:

Exception:
System.OutOfMemoryException: Array dimensions exceeded supported range.
   at System.Collections.Generic.List`1.set_Capacity(Int32 value)
   at System.Collections.Generic.List`1.EnsureCapacity(Int32 min)
   at System.Collections.Generic.List`1.Add(T item)
   at System.IO.File.InternalReadAllLines(String path, Encoding encoding)
   at Microsoft.PowerShell.PSConsoleReadLine.<ReadHistoryFile>b__67_0()
   at Microsoft.PowerShell.PSConsoleReadLine.WithHistoryFileMutexDo(Int32 timeout, Action action)
   at Microsoft.PowerShell.PSConsoleReadLine.DelayedOneTimeInitialize()
   at Microsoft.PowerShell.PSConsoleReadLine.Initialize(Runspace runspace, EngineIntrinsics engineIntrinsics)
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)
-----------------------------------------------------------------------

這讓我想到了現有的Github問題: https://github.com/lzybkr/PSReadLine/issues/673

我嘗試刪除歷史文件 ~\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ 那時超過6 GB,之後PowerShell控制台很快就開始了。

也許你遇到的緩慢是PowerShell試圖讀取一個大的歷史文件(這還不夠大 OutOfMemory)。


-1
2017-10-19 07:19