syg_hira's tech-work memo

某人材サービス会社の情報共有インフラ担当のおぼえがきです。MicrosoftのEnterprise製品多め。

PowerShell実行ポリシー変更

$Cred = Get-Credential -Credential 'domain\TaskUser'
Invoke-Command -ComputerName ServerName -Credential $Cred -ScriptBlock { `
Get-ExecutionPolicy -List; `
$Ret = Read-Host -Prompt '実行ポリシーを変更します(Hit Any Key)'; `
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted; `
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Unrestricted; `
Get-ExecutionPolicy -List; `
$Ret = Read-Host -Prompt '実行ポリシーを変更しました(Hit Any Key)'; `
}

手動で実行できるPowerShellスクリプトを、JP1/AJSから呼び出し実行する際に、実行ポリシーを'Unrestricted'にする必要がありました。

検証環境では'LocalMachine'ポリシーだけでも動作しましたが、本番環境ではタスク実行ユーザのCurrentUserポリシーもUnrestrictedにする必要がありました。

サーバがたくさんあるので、上のスクリプトで共通管理者アカウントを利用してリモートから設定しました。

ポリシーについては、セッションのプロファイルなどが関係しそうですが、時間の問題で調査できず。

なお、実行ポリシーを'Unrestricted'にする場合、セキュリティリスクを検討してください。
しかるべきハードニングされたサーバであれば、運用作業の管理ができていれば問題はないと思いますが。