PowerShellのコンソールから、ps1ファイルを実行しようとすると、デフォルトだと以下のメッセージが出てエラーとなる。
スクリプトの実行がシステムで無効になっているため、ファイル test.ps1 を読み込めません。詳細については、「get-help about_signing」と入力してヘルプを参照してください。
発生場所 行:1 文字:11
+ .\test.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) []、PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
ps1ファイルを実行するかどうかは、「実行ポリシー(ExecutionPolicy)」で制御されています。
ポリシーは以下5種類で上から厳しい順番に並んでいます。デフォルトは一番厳しい「Restricted」になっているようです。
- Restricted ⇒ すべてのスクリプトファイルは実行禁止
- AllSigned ⇒ 署名付きファイルのみ実行可能
- RemoteSigned ⇒ ローカルのスクリプトファイルは実行可能
- Unrestricted ⇒ ダウンロードしたスクリプトの実行時に確認される
- Bypass ⇒ 全スルー!
■ポリシーの確認方法
Get-ExecutionPolicy
■ポリシーの設定方法
Set-ExecutionPolicy [ポリシー]
■batファイルから.ps1ファイルを呼び出す際にポリシーを設定する方法
<test.bat>
powershell -ExecutionPolicy [ポリシー] -File [.ps1ファイルパス]
参考記事は以下
http://www.atmarkit.co.jp/ait/articles/0805/16/news139.html