バッチファイルからWindows PoweShellの実行ポリシーを設定する

新しいWindows端末でPowerShellを使う場合、最初に実行ポリシィを設定する必要があります

最初に1回だけやればいい話ですが何らかの事情で頻繁に行う人にはやっぱり面倒です

そういう作業はPowerShellで自動化したい所ですが、なにせWindows PowerShellの実行ポリシーですのでWindows (DOS) コマンドのバッチをファイルの出番です

コマンドプロンプト上ではWindows PowerShellのコマンドレットはPowerShellコマンドで実行できます

PowerShell -Command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser;"

できました


これで終わりだと流石に短いのでもう少し続けます

仮に、Windows PowerShellで端末設定部分を自動化したけれど、そのps1ファイルを実行するのに実行ポリシーを変更したい、そして実行後はWindows PowerShellの実行ポリシーを元に戻したい、とします

この場合先にPowerShell Get-ExecutionPolicyで値を取得しておいて、あとから再設定することになります

ECHO OFF

REM 権限の保存
FOR /F "usebackq" %%i IN (`PowerShell -Command Get-ExecutionPolicy`) DO SET PSEP=%%i

REM 権限の設定
PowerShell -Command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser;"

REM ps1ファイルのの実行
PowerShell -File "\\nas\Set-EnvironmentInfo.ps1"

REM 権限を戻す
PowerShell -Command "Set-ExecutionPolicy %PSEP% -Scope CurrentUser;"

今回は最終的に実行したいps1ファイルを今回は\\nas\Set-EnvironmentInfo.ps1としています

また、バッチファイル化することを前提に考えているので%は二つ重ねて書いています

なお、設定をRemoteSignedにしていますが、もちろんここは用途に応じて変更してください

そんな感じで