
■ 実行ポリシーの変更
クライアント(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 ---
スポンサードリンク


