Powershellスクリプトの読み込みに時間がかかる


0

単純なPowerShellスクリプトの実行に数十秒以上かかるのはなぜですか?

スクリプト全体(test-slow.ps1)は次のとおりです。

write-host "test"

コマンドプロンプトから次のように呼び出します。

>echo %TIME%
15:07:12.64

>powershell .\test-slow.ps1
test

>echo %TIME%
15:07:26.81

cmdプロンプトからpowershellインスタンスを起動し、そのインスタンス内からこの単純なスクリプトを実行した場合、違いはありません(または、他の何かがまだ間違っているという意味です)。

システム情報:

PS> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      0      10240  16384

>systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:     Microsoft Windows 10 Pro
OS Version:  10.0.10240 N/A Build 10240

リモートデスクトップ(ワイヤレスではなく有線接続)経由でマシンにアクセスしていますが、ローカルで同じことを実行します。ローカルLAN上にありますが、インターネットには接続されていません。


1511や1607ではなく1507を使用しているのはなぜですか?
ラムハウンド

1
Process Monitor(technet.microsoft.com/sysinternals/processmonitor.aspx)を実行して、スクリプトを起動します。最初に、相対時間列と期間列を追加し、フィルターをプロセス名にPowershell.exeにします。最初に、イメージの読み込み時間だけに焦点を合わせ、時間が失われた場所を確認します。たとえば、すべてのモジュールをすばやく読み込むことはできますか?時間がかかっているセキュリティソフトウェアがある可能性がありますか?Powershell.exeのフィルターを削除し、0.1を超えるDurationを追加すると役立つ場合があります。いずれにせよ、PMLは時間が失われた場所を示します。それが役に立てば幸い。
HelpingHand

echo %time%&powershell .\test-slow.ps1&call echo %^time%開いているウィンドウから2回実行しcmdます。遅延は同じですか?
-JosefZ

@Ramhound。これは、他のアプリが依存するベースラインイメージを使用しているためです。1511以降には更新されたPowerShellがありますか?その理論をテストするためにアップデートをインストールしても構いませんが、ボックスはインターネットに接続されていません-OSアップデートをオフラインで適用する方法はありますか?
-atreyu

@JosefZ、私はそのコマンドを開いたcmdウィンドウから2回実行しましたが、遅延は同じでした(約9-10秒)
-atreyu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.