【避坑】PowerShell:因爲在此係統上禁止運行腳本 附原因和解決辦法

現象:

用powershell作爲命令行工具,嘗試使用thinkjs,安裝完think-cli後檢測運行版本(thinkjs -V)時,遇到了以後問題:

快速解決:

通過管理員模式打開powershell,然後輸入:
set-executionpolicy RemoteSigned

然後輸入A全是,等待運行即可。
(不需要深入瞭解到此爲止,不用看下文)

原因:

當前powershell執行策略無法運行腳本
powershell有四種執行策略:

  • Restricted 禁止運行任何腳本和配置文件(默認)
  • AllSigned 可以運行腳本,但要求所有腳本和配置文件由可信發佈者簽名,包括在本地計算機上編寫的腳本
  • RemoteSigned 可運行腳本,但要求從網絡上下載的腳本和配置文件由可信發佈者簽名;不要求對已經運行和本地計算機編寫的腳本進行數字簽名
  • Unrestricted 可以運行未簽名的腳本

解決方案:

1.換CMD
這比較無腦,不建議,不優雅(但是可以用)。
2.更換設置系統策略
a. 查看powershell當前策略
通過get-executionpolicy可以獲取當前系統策略
出現這個問題是因爲系統默認執行策略爲Restricted
b.使用管理員模式打開powershell

c.重新設置powershell策略
顯然由上,我們可以看到,只需要修改策略就可以,根據描述我們可以將其修改爲RemoteSigned
修改的命令是:set-executionpolicy 策略名
在這裏直接調用set-executionpolicy RemoteSigned即可
d.再次檢測當前策略
get-executionpolicy
可見已經被修改,可以繼續之前的操作了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章