バッチファイルから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
にしていますが、もちろんここは用途に応じて変更してください
そんな感じで