Powershell執行策略限制相關


1.git status

報錯:
git : 無法將“git”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,
然后再試一次。

解決方法:

 

Windows給powershell設定了一個叫“執行策略”的東西。

為什么要弄這么一個執行策略呢,因為powershell能做的事情太多了,為了避免一些惡意腳本直接運行,一般家用的windows系統默認將執行策略設置成了“Restricted”,即受限制的。

我們可以運行命令來查看自己電腦上的執行策略被設置成了什么:

cmd Get-ExecutionPolicy -LIST

顯示:

Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Unrestricted

或者運行Get-ExecutionPolicy,輸出Restricted

說明電腦是受限制的,不能運行任何的腳本。

 

 

所有的執行策略如下所示(參考About Execution Policies):

AllSigned. 要求所有腳本和配置文件均需受信任的發布者簽名,包括在本地計算機上編寫的腳本。(安全但是本地編寫的腳本也要簽名,麻煩)
Bypass. 不會阻止你運行任何腳本,也沒有提示和警告。(不安全)
Default. 默認的執行策略,普通桌面Windows默認Restricted,服務器windows默認RemoteSigned。
RemoteSigned. 要求從互聯網上下載的所有腳本和配置文件均需要受信任的發布者簽名,本地腳本則不需要簽名。是Windows服務器的默認執行策略。(較為安全)
Restricted. 無法加載配置文件或運行腳本。桌面Windows的默認執行策略。(安全,但無法運行腳本)
Undefined. No execution policy is set for the scope. Removes an assigned execution policy from a scope that is not set by a Group Policy. If the execution policy in all scopes is Undefined, the effective execution policy is Restricted.(這里的Undefined不知道是什么東西,先不管它)
Unrestricted. 從PowerShell 6.0開始,這是非Windows系統的默認執行策略,並且不能更改。 能夠加載任何配置文件和運行任何腳本。如果運行從網上下載的未簽名腳本,則會在運行之前提示您獲得許可。(不安全)
經過權衡安全和便捷,決定設置成RemoteSigned策略,運行一下命令

 

cmd執行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

設置當前用戶作用域具備權限,具體設置格式是這樣的:Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>

執行策略更改

顯示:
執行策略可幫助你防止執行不信任的腳本。更改執行策略可能會產生安全風險,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 幫助主題所述。是否要更改執行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暫停(S) [?] 幫助 (默認值為“N”): y
Set-ExecutionPolicy : 對注冊表項“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell”的
訪問被拒絕。 要更改默認(LocalMachine)作用域的執行策略,請使用“以管理員身份運行”選項啟動 Windows PowerShell。要更改當
前用戶的執行策略,請運行 "Set-ExecutionPolicy -Scope CurrentUser"。
所在位置 行:1 字符: 1
+ Set-ExecutionPolicy Unrestricted
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

 

 

 

 

用戶如果是第一次使用powershell 執行腳本 的話。其中的原因是:

windows默認不允許任何腳本運行,你可以使用"Set-ExecutionPolicy"cmdlet來改變的你PowerShell環境。

你可以使用如下命令讓PowerShell運行在無限制的環境之下:

Set-ExecutionPolicy Unrestricted

Unrestricted 為允許所有的腳本運行

在win7(含)以上必須使用管理員的權限啟動命令命令行,否則會報“Set-ExecutionPolicy : 對注冊表項“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell”的訪問被拒絕。”錯誤。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM