署名されたPowerShell cmdletsは、署名されていないcmdletsよりも遅く実行されます[修正]

Windows Speedupツールをダウンロードしてエラーを修正し、PCをより速く実行する

acmdletで使用される軽量コマンドですWindows Powershell環境。 Windows PowerShellランタイムは、コマンドラインで提供される自動化スクリプトのコンテキスト内でこれらのcmdletを呼び出します。 Windows PowerShellランタイムは、Windows PowerShell APIを介してプログラム的に呼び出します。今日の投稿では、原因を特定し、署名された問題の回避策を提供しますPowershell cmdletsWindowsで署名されていないcmdletsよりも遅く実行されます。

cmdlets Actで、通常、Microsoft .NETフレームワークオブジェクトをパイプラインの次のコマンドに返します。 cmdletを作成するには、2つの専門的なCMDLETベースクラスのいずれかから派生したCMDLETクラスを実装する必要があります。派生クラスは次のことをしなければなりません:

  • 派生クラスをcmdletとして識別する属性を宣言します。
  • パブリックプロパティをcmdletパラメーターとして識別する属性で装飾されたパブリックプロパティを定義します。
  • 入力処理方法の1つ以上をオーバーライドして、レコードを処理します。

署名されたWindows PowerShell CMDLETSは、署名されていないCMDLETよりもゆっくりと実行されていることがわかります。

この問題は、コンピューターが証明書トラストリスト(CTL)検証のために次のアドレスに接続できないために発生します。

https://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab

https://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab

これは、ネットワークの問題が存在するときに発生します。たとえば、誤ったプロキシ設定があります。

この問題を回避するには、次のことを行います。

Signed PowerShell cmdlets run slower than unsigned cmdlets

コンピューター構成> [Windows設定]> [セキュリティ設定]> [公開キー]ポリシー

  • 右側の詳細ペインで、ダブルクリックします証明書パス検証設定
  • を選択しますネットワーク検索タブ。
  • を確認してくださいこれらのポリシー設定を定義しますチェックボックス。
  • チェックを外しますMicrosoftルート証明書プログラムで証明書を自動的に更新する(推奨)チェックボックス。
  • クリック適用する>わかりました。

これで、ローカルグループポリシーエディターを終了できます。

それでおしまい!