社内SEの徒然なる日記

powerShellの実行ポリシーを変更してみた

■ 実行ポリシーの変更

クライアント(WindowsXP)で作成したpowerShellをサーバにコピーして実行してみました。
すると、こんなエラーが発生しました。
スクリプトの実行がシステムで無効になっているため、ファイル D:\疎通確認\script\test.ps1 を読み込めま
せん。詳細については、「get-help about_signing」と入力してヘルプを参照してください。
発生場所 行:1 文字:42
+ D:\疎通確認\script\test.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) []、PSSecurityException
+ FullyQualifiedErrorId : RuntimeException


どうやら、実行ポリシーとやらがあるようで、調べてみると4種類見つかりました。

Restricted : 全てNG。デフォルトはこれらしい。
AllSigned : 署名されてたらOK。
RemoteSigned : ローカルのはOK。ネット上のは署名されてたらOK。
Unrestricted : 全てOK。ただしネット上のは実行に確認が必要。

とりあえず、実行ポリシーを変更します。「RemoteSigned」はローカルは可、インターネットダウンロードは署名付きを許可。まぁ、これで良いでしょ。
Set-ExecutionPolicy RemoteSigned


Get-ExecutionPolicyで結果を確認できます。
Get-ExecutionPolicy


operationManagerから実行してみる

手動では実行できるようになったんですが、operationManager(富士通製のジョブ実行ソフト。JP1みたいなやつ)から実行すると、「スクリプトの実行が許可されていない」っつーエラーが出てきやがる。

これ、Windowsが64bit、operationManagerが32bitの時に発生するようです。
どうやら、powerShellは64bit用と32bit用の2種類用意されているらしく、普通にポリシーを変更すると64bitの方が変更されるようなのです。
なので、operationManagerから実行する場合は32bit用のpowerShellの実行ポリシーを変更する必要がある。

んで、それぞれの場所は以下の通り。
まぁ、バージョンによって場所違うだろうけどね。

64bit


C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

32bit


C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe


ssytem32がSysWOW64に変わっただけであとは同じ。
このあたりは64bit版WindowsOSが32bitアプリを動かす仕組みの話なので、気になるならWOW64(Windows 32bit emulation on Windows 64bit)あたりでググって下さい。

32bit版のpowershell.exeを起動して、実行ポリシーを「RemoteSigned」に変更すると、operationManagerで動作するようになりました。
やれやれです。

投稿記事の一覧:http://harikofu.web.fc2.com/

--- blog end ---

スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する
 

ありがと!!

JP1-PowerShellの情報 役に立った! 
Set-ExecutionPolicyで設定してんのになんで実行できないんだ!! って2時間悩んでいたわ。
これで実行できた。

おっさん | URL | 2014-12-25(Thu)00:16 [編集]


Re: ありがと!!

お役に立てたようで、嬉しいです。
過渡期のせいか、こういう訳の分からないトラブルが多くて困りますね。

harikofu | URL | 2014-12-25(Thu)12:51 [編集]


ありがとう!

JP1で動作できなくて困ってました。
Power-Shellのbit環境によって設定が別になってるとは。

K | URL | 2016-12-08(Thu)13:38 [編集]


Re: ありがとう!

> JP1で動作できなくて困ってました。
> Power-Shellのbit環境によって設定が別になってるとは。
やっぱりJP1でも同じだったんですね。お役に立てたようで嬉しいです。

ハリコフ | URL | 2016-12-08(Thu)23:10 [編集]