每次啟動 PowerShell ISE(x64 或 x86)時,我都會收到以下資訊:
它完全如圖所示繪製,並且立即沒有響應。底部的黑色部分在視窗邊界內。
PowerShell CLI 運作良好。
除了我嘗試關閉應用程式時掛起的記錄之外,我在事件檢視器中看不到任何內容。
我嘗試下載該GlobalUserInterface.CompositeFont
字體作為解決方案 #3 的一部分這個問題,但下載連結似乎已損壞。
截至本文發佈時,我沒有待處理的 Windows 更新。我運行的是 Windows 10 專業版 21H2。
我怎樣才能知道發生了什麼事?
編輯(2021-01-02T03:32Z):顯然,啟動需要很長時間。最終呈現的是,10分鐘後。如果 Visual Studio 2022 可以在 10 秒內打開,PS ISE 就沒有藉口了。到底是怎麼回事?
答案1
PowerShell ISE 嘗試存取最近的文件清單時速度很慢,並且連接重複無法存取不再存在的網路路徑。我透過刪除這個目錄解決了這個問題:
C:\Users\{username}\AppData\Local\Microsoft_Corporation\powershell_ise.exe_StrongName_lw2v2vm3wmtzzpebq33gybmeoxukb04w
我透過執行 Sysinternals Process Monitor、按 PowerShell_ISE 的 PID 進行過濾並查看渲染停止之前發生的最後一件事發現了這一點。它所做的最後一件事是讀取該目錄中的檔案。然後它只報告“線程退出”幾分鐘。
我將大部分文件儲存在 NAS 上,並且出於某種原因在 ISE 中透過 IP 打開一兩個文件,而不是透過映射的網路磁碟機。 ISE 嘗試解析每個文件,但花了很長時間才超時。
答案2
就我而言,減緩 PowerShell ISE 啟動速度的是控制台歷史記錄。這是一個幾乎 2Gb 的文件,其中包含許多重複的命令。刪除該檔案解決了問題:
C:\Users\{username}\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
我還使用前面提到的 Sysinternals Process Monitor 來發現了它。它顯示了對該文件的多次存取。
答案3
對我們來說,拖慢 PowerShell ISE 啟動速度的原因是「Show Command Add-on」。當 Show Command Add-on 開啟時,它類似於執行 get-command。確保取消選中它,下次啟動 ISE 時,速度應該會更快
答案4
正如@JD Mallen 所提到的。就我而言,我有一個自動保存資訊儲存在以下資料夾中的 XML 檔案中:
AppData\
Local\
Microsoft_Corporation\
powershell_ise.exe_StrongName_lw2v2vm3wmtzzpebq33gybmeoxukb04w\
3.0.0.0\
AutoSaveInformation
我刪除了 XML 文件,現在一切正常了。