來記錄一下最近遇到的問題,在 Windows 上使用 npm 安裝 CDK Toolkit 執行出現錯誤
使用 cdk 指令出現 “因為這個系統上已停用指令碼執行,所以無法載入”
當我使用 npm 安裝完 aws-cdk 第一次要執行 cdk 指令的時候就出現以下的錯誤
PS C:\> cdk cdk : 因為這個系統上已停用指令碼執行,所以無法載入 C:\Users\user\AppData\Roaming\npm\cdk.ps1 檔案。如需詳細資訊,請參閱 about_Execution_Policies,網址為 https:/go.microsoft.com/fwlink/?LinkID=135170。 位於 線路:1 字元:1 + cdk + ~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
錯誤發生的原因其實是因為 Windows 在執行策略上有一些安全性設置,為了是要讓使用者不會執行一些不安全的指令,那要怎麼解決這個問題呢?
解決 “因為這個系統上已停用指令碼執行,所以無法載入”
首先我們先使用指令查詢一下目前的執行原則是什麼
PS C:\> Get-ExecutionPolicy Restricted
以預設來說是 Restricted 它的意思是關閉腳本執行功能。
我們希望本機可以執行腳本又要保留安全性,我們要怎麼做呢?答案是我們可以使用 RemoteSigned 它的意思是在本機電腦中,不需要簽署就可以執行,但是從網路來的腳本需要簽署才可以執行。
PS C:\> Set-ExecutionPolicy Cmdlet Set-ExecutionPolicy 在命令管線位置 1 請提供下列參數的值: ExecutionPolicy: RemoteSigned
執行完後再執行 cdk 指令就會發現它可以正常執行了
PS C:\> cdk --version 1.106.1 (build c832c1b)
《AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC》
第 12 屆 iT 邦幫忙鐵人賽 DevOps 組冠的《用 CDK 定 義 AWS 架構》
第 11 屆 iT 邦幫忙鐵人賽《LINE bot 好好玩 30 天玩轉 LINE API》
一個熱愛分享的雲端工程師!