(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Windows/Powershell】PSSecurityExceptionのエラー回避方法と設定の戻し方

スポンサーリンク

事象

下記の記事に沿ってインストールを行うも

表題のセキュリティエラーで失敗する。

Import-Module : このシステムではスクリプトの実行が無効になっているため、ファイル C:\ProgramFiles\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.1.0.16997004\VMware.VimAutomation.Sdk.psm1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ Get-Module -Name VMware.PowerCLI -ListAvailable | Import-Module
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) [Import-Module]、PSSecurityException
    + FullyQualifiedErrorId :UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand
環境情報
  • Windows 10 Enterprise
  • PSVersion : 5.1

原因/対応策

ExecutionPolicyがデフォルト値であるRestrictedとなっていたため、スクリプトの実行が行えなかった。

PS > Get-ExecutionPolicy
Restricted

よって暫定的にインターネットからダウンロードされたスクリプトに対しては署名されていることを要求する、という設定であるRemoteSignedに変更すれば

PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned

エラーが回避される。

その後、元の設定に戻す場合は末尾をRestrictedに変更して再実行する。

PS C:\WINDOWS\system32> Set-ExecutionPolicy Restricted

以下、補足です。

補足

同設定項目は、他にもローカルのスクリプトでも署名を求めるAllSignedや署名が全く必要ないUnrestrictedなどがあります。

設定項目の変更に関しては管理者権限が必要かつ以下のメッセージにて設定変更の確認が求められます。

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y

以上、ご参考になれば幸いです。