PowerShellスクリプトを実行させる
PowerShellスクリプトを実行させるためには下記のことを知っている必要がある。・PowerShellスクリプトの拡張子は、「.ps1」である。 ・PowerShellを悪用したウイルスなどがインストールされ、実行されないようにするため、デフォルトではスクリプト・ファイルの実行は禁止されている。
実行ポリシー | 内容 |
---|---|
Restricted | すべてのスクリプトが実行禁止。Windows PowerShell は対話型モードでのみ使用できます。PowerShellインストール直後のデフォルト設定 |
AllSigned | 署名されているスクリプトのみが実行可能。署名されていないスクリプトは実行禁止 |
RemoteSigned | ローカルに保存されているスクリプトは実行可能。インターネットからダウンロードしたスクリプト(非ローカルのスクリプト)は、署名されているもののみが実行可能 |
Unrestricted | すべてのスクリプトが実行可能。ただしインターネットからダウンロードしたスクリプトは、実行するかどうかが確認されるので、ユーザーが明示的に許可した場合のみ実行される |
PS C:\work> .\test.ps1 .\test.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\work\test.ps1 を読み込むことができませ ん。詳細については、「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。 発生場所 行:1 文字:1 + .\test.ps1 + ~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
PS C:\work> set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y実行ポリシーを「RemoteSigned」にした状態で、再度PowerShellスクリプトを実行する。
PS C:\work> Get-ExecutionPolicy Restricted
PowerShellスクリプトをバッチ実行させる
バッチファイルの中で、実行ポリシーの変更し、PowerShellスクリプトを実行するように記述します。 また安全策として、最後に実行ポリシーを元にもどすとよいでしょう。 ・test.batpowershell Set-ExecutionPolicy RemoteSigned powershell c:\work\test.ps1 powershell Set-ExecutionPolicy Restricted