PowerShellのコンソールから、ps1ファイルを実行しようとすると、デフォルトだと以下のメッセージが出てエラーとなる。

スクリプトの実行がシステムで無効になっているため、ファイル test.ps1 を読み込めません。詳細については、「get-help about_signing」と入力してヘルプを参照してください。

発生場所 行:1 文字:11
+ .\test.ps1 <<<<
+ CategoryInfo          : NotSpecified: (:) []、PSSecurityException
+ FullyQualifiedErrorId : RuntimeException

 

ps1ファイルを実行するかどうかは、「実行ポリシー(ExecutionPolicy)」で制御されています。

ポリシーは以下5種類で上から厳しい順番に並んでいます。デフォルトは一番厳しい「Restricted」になっているようです。

  1. Restricted ⇒ すべてのスクリプトファイルは実行禁止
  2. AllSigned ⇒ 署名付きファイルのみ実行可能
  3. RemoteSigned ⇒ ローカルのスクリプトファイルは実行可能
  4. Unrestricted ⇒ ダウンロードしたスクリプトの実行時に確認される
  5. Bypass ⇒ 全スルー!

■ポリシーの確認方法

Get-ExecutionPolicy

■ポリシーの設定方法

Set-ExecutionPolicy [ポリシー]

■batファイルから.ps1ファイルを呼び出す際にポリシーを設定する方法

<test.bat>

powershell -ExecutionPolicy [ポリシー] -File [.ps1ファイルパス]

 

 

参考記事は以下

http://www.atmarkit.co.jp/ait/articles/0805/16/news139.html

Follow me!