客先環境のWindows10にて、PowerShellで記述したスクリプトファイルを
powershell.exe c:\temp\script.ps1
のように実行しようとしたところ
このシステムではスクリプトの実行が無効になっているため、 ファイル C:\temp\script.ps1 を読み込むことができません。
というエラーが出ました。どうやらPowerShellスクリプトの実行自体が制限されているようです。これの回避策についてメモしておきます。
正攻法
正攻法は「設定を変えて制約を外す」です。これには、PowerShellの
Set-ExecutionPolicy unrestricted
のようにSet-ExecutionPolicyコマンドが使えますが、残念ながらこのコマンドも管理者権限がないと使えません。これは、管理者モードで起動したコマンドプロンプトから「PowerShell」と打ち、管理者モードでPowerShellコマンドプロンプトを表示させた状態であれば実行可能です。ですが、そもそもファイルに書いたスクリプトを実行させようとしている時点でそういう手作業を省きたいという思いがあるので、受け入れられない方策です。
その時だけ制約を解除する方法
もう1つの手として、PowerShell.exeの動作パラメータの1つ「-ExecutionPolicy」を指定して、その時だけ制約を変更するという手があります。
powershell.exe -ExecutionPolicy unrestricted c:\temp\script.ps1
これです。これであればシステム全体に制約がかかったままでも、この命令の実行時、この処理だけ解除できました。
- 作者: 柏原基規
- 発売日: 2015/11/04
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 蒲生睦男
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2017/02/16
- メディア: Kindle版
- この商品を含むブログを見る