Windows 7 64ビットでPowerShell 3.0を実行する際に問題が発生しました。実行時に開く/開始するのに非常に長い時間がかかります。それはまた、ほとんど何にでも対応してかなり遅いです。
これは、自分のプロファイルがドキュメントに保存されており、ドキュメントフォルダーがネットワークに同期されているためと考えられます。
プロファイルの場所を移動して、ネットワークではなくローカルにできるようにする方法はありますか?
Windows 7 64ビットでPowerShell 3.0を実行する際に問題が発生しました。実行時に開く/開始するのに非常に長い時間がかかります。それはまた、ほとんど何にでも対応してかなり遅いです。
これは、自分のプロファイルがドキュメントに保存されており、ドキュメントフォルダーがネットワークに同期されているためと考えられます。
プロファイルの場所を移動して、ネットワークではなくローカルにできるようにする方法はありますか?
回答:
PowerShellは.NET Frameworkに依存してい ます。これを更新してみてください。
このスクリプトは私のスピードにも役立ちました
$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
}
Generate native images for an assembly and its dependencies and install them in the Native Images Cache. If /queue is specified compilation job is queued up. If a priority is not specified, the default priority used is 3.
NGENに関する上記の回答により、起動時間が30秒以上から5秒未満に短縮されました。
ただし、数秒待ってからCtrl-Cを押すとプロンプトが表示される場合もあり、すでに上記のNGENのトリックを実行しており、その場合、スクリプトが原因で速度が低下していると思われます。
それが30秒を超え、すでに上記のNGENトリックを試した場合、最も一般的な理由は、個人およびシステムプロファイルのpowershellスクリプトの起動に時間がかかることです。10秒未満の遅延について不平を言っている場合は、開始が遅いのはおそらく.netです。
VMを使用していて、VMホストが完全に行き詰まっており、ほとんどのオーバープロビジョニングされたリソース不足のVM環境のようにIOにバインドされている場合、それはそれです。
Powershellプロファイルを保存できるデフォルトの場所はいくつかあります。
最初の場所はグローバルな場所であり、すべてのユーザーにカスタマイズされたPowershellプロファイルを持たせる場合に便利です。このプロファイルは
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Profile.ps1
2番目の場所はローカルプロファイル用で、各ユーザーアカウントに固有です。このファイルはグローバル構成ファイルを上書きするため、次の場所に配置する必要があります
C:\Username\My Documents\WindowsPowerShell\Profile.ps1
テストとして、(system32にある)グローバルPowershellプロファイルを変更して、速度が向上するかどうかを確認します。もしそうなら、ネットワークが原因で速度が低下していることがわかり、そこから先に進むことができます。
最近、バイナリPowerShellモジュールを開発するときに同様の問題が発生しました。私のコンソールは、ほとんど何にでも応答して非常に遅かった。Steven Pennyのスクリプトは私にとってはうまくいきましたが、PowerShellのインスタンスごとにのみです。私は彼のスクリプトで何が起こっているのか本当に理解していませんでした。だから私は私の問題がどこにあるかを確認するために行ごとに行きました。
それは私のパス環境変数になってしまいました。パス変数にUNCパス文字列があり、PowerShellが実行ごとに(つまり、Enterキーを押すたびに)接続を開いたり閉じたりするため、遅延が発生しました。