Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Windowsのシェル環境では「ExecutionPolicy」を変更しないと困る局面がある

開発の普段使いはOS Xですが、職場のPCはWindowsです。
そこでのシェル環境では「ExecutionPolicy」を変更しないと困る局面があります。
今回は、その確認法と変更法。

実際のところ

これまで完全に事務用で使っていたPCにchocolatyを入れようとしたところ、以下のようなメッセージが

& : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\...\chocolateyInstall.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(
.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:161 文字:3
+ & $chocInstallPS1
+   ~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
Ensuring chocolatey commands are on the path
Ensuring chocolatey.nupkg is in the lib folder

はい。これはExecutionPolicyの設定が原因です。
公式の導入手順にも

(Ensure Get-ExecutionPolicy is at least RemoteSigned)

とか書いてありますよね。

では、まず現在の状況を見てみましょう。
Get-ExecutionPolicyコマンドを見ればよいです。

PS C:\WINDOWS\system32> Get-ExecutionPolicy
Restricted

……一番安全なRestrictedデスネ。
権限変更するためには、管理者モードでpowershellを実行した後、Set-ExecutionPolicyコマンドを叩きます

PS C:\WINDOWS\system32> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Po
のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): 

全部終わったら念のため元に戻しておきましょう。

Set-ExecutionPolicy -ExecutionPolicy Restricted