PowerShell Execution Policies 腳本執(zhí)行策略

PowerShell 腳本執(zhí)行策略是為了保護(hù)計(jì)算機(jī)安全,防止惡意PS腳本運(yùn)行的。我以前沒(méi)用到過(guò)PS腳本,最近在VScode編輯器里用Python虛擬環(huán)境(Python venv)時(shí),VScode使用PowerShell腳本啟動(dòng)venv,報(bào)錯(cuò)“無(wú)法加載文件,因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本”。然后才了解 PowerShell 腳本執(zhí)行策略。
先說(shuō)解決方法
在windows“開(kāi)始”菜單里,找到Windows? PowerShell,右鍵菜單選擇“以管理員身份運(yùn)行”。在 PowerShell 窗口里,執(zhí)行
Set-ExecutionPolicy RemoteSigned
然后就可以運(yùn)行了。
下面介紹PowerShell 腳本執(zhí)行策略
微軟官方文檔位于:https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7網(wǎng)址二維碼:

簡(jiǎn)單點(diǎn)說(shuō),為了防止惡意的PowerShell腳本,微軟給PS腳本設(shè)置了不同的運(yùn)行授權(quán)級(jí)別:
AllSigned
只允許帶簽名的PS腳本運(yùn)行
Bypass
放棄治療,隨便運(yùn)行
RemoteSigned
遠(yuǎn)程腳本需要簽名,本地腳本不用。就是我們上面設(shè)置的級(jí)別,遠(yuǎn)程指的是網(wǎng)上下載或電子郵件等途徑獲得的腳本。服務(wù)器系統(tǒng)默認(rèn)就是這個(gè)級(jí)別。
Restricted
受限制的,不允許運(yùn)行腳本,只執(zhí)行在PowerShell窗口里敲的命令。這個(gè)是個(gè)人系統(tǒng)默認(rèn)的運(yùn)行授權(quán)級(jí)別。
Undefined
表示運(yùn)行級(jí)別尚未定義。但此時(shí)實(shí)際是執(zhí)行上面提到的系統(tǒng)默認(rèn)運(yùn)行級(jí)別。
Unrestricted
在Win平臺(tái)之外使用PowerShell時(shí)的默認(rèn)級(jí)別。允許全部腳本執(zhí)行,對(duì)非本地腳本給出提醒。
相關(guān)命令:
Get-ExecutionPolicy
查看當(dāng)前的設(shè)置
設(shè)置運(yùn)行級(jí)別
更多信息建議看官方文檔(目前只有英文)。
標(biāo)簽: