開発の普段使いは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