參考連接:https://blog.csdn.net/jeffxu_lib/article/details/84710386
參考連接:http://www.cragsman.org/index.php?m=content&c=index&a=show&catid=92&id=322
以下命令獲取當前執行策略:
Get-ExecutionPolicy
若要獲取影響當前會話的所有執行策略,並按優先順序顯示它們,請鍵入
Get-ExecutionPolicy -List
執行策略更改
Set-ExecutionPolicy ALLSIGNED
Windows PowerShell 執行策略如下所示:
默認執行策略為"Restricted"。
RESTRICTED
- Windows 8、Windows Server 2012 和 Windows 8.1 中的默認執行策略。
- 允許單獨的命令,但不會運行腳本。
- 阻止所有腳本文件的運行,包括格式設置文件和配置文件 (.ps1xml)、模塊腳本文件 (.psm1) 和 Windows PowerShell 配置文件 (.ps1)。
ALLSIGNED
- 腳本可以運行。
- 要求所有腳本和配置文件都由受信任的發布者簽名,包括在本地計算機上編寫的腳本。
- 會在運行來自某類發布者(即你尚未歸類為受信任或不受信任的發布者)的腳本之前提示你。
- 存在運行已簽名但卻是惡意的腳本的風險。
REMOTESIGNED
- 腳本可以運行。這是 Windows Server 2012 R2 中的默認執行策略。
- 要求從 Internet 下載的腳本和配置文件(包括電子郵件和即時消息程序)具有受信任的發布者的數字簽名。
- 不要求你在本地計算機上編寫的腳本(不是從 Internet 下載的)具有數字簽名。
- 如果腳本已被取消阻止(比如通過使用 Unblock-File cmdlet),則運行從 Internet 下載但未簽名的腳本。
- 存在運行來自 Internet 之外的源的未簽名腳本和已簽名但卻是惡意的腳本的風險。
UNRESTRICTED
- 未簽名的腳本可以運行。(這存在運行惡意腳本的風險。)
- 在運行從 Internet 下載的腳本和配置文件之前提醒用戶。
BYPASS
- 不阻止任何內容,並且沒有任何警告或提示。
- 該執行策略旨在用於后述配置:在其中 Windows PowerShell 被內置於一個更大的應用程序中,或者在其中 Windows PowerShell 是具有其自己安全模式的程序的基礎。
UNDEFINED
- 當前作用域中未設置執行策略。
- 如果所有作用域中的執行策略都是 Undefined,則有效的執行策略是 Restricted,它是默認執行策略。
注意:在不區分通用命名約定 (UNC) 路徑和 Internet 路徑的系統上,可能不允許使用 RemoteSigned 執行策略運行由 UNC 路徑標識的腳本。
執行策略作用域
你可以設置僅在某個特定作用域中有效的執行策略。
Scope 的有效值為 Process、CurrentUser 和 LocalMachine。設置執行策略時,LocalMachine 是默認值。
按優先順序列出這些 Scope 值。
- PROCESS
執行策略僅影響當前會話(當前 Windows PowerShell 進程)。
執行策略存儲在 $env:PSExecutionPolicyPreference 環境變量中,不是存儲在注冊表中,並且當關閉會話時會刪除它。不能通過編輯變量值來更改策略。
- CURRENTUSER
執行策略僅影響當前用戶。它存儲在 HKEY_CURRENT_USER 注冊表子項中。
- LOCALMACHINE
執行策略會影響當前計算機上的所有用戶。它存儲在 HKEY_LOCAL_MACHINE 注冊表子項中。
優先的策略在當前會話中有效,即使在較低優先級上設置了更加嚴格的策略。
有關詳細信息,請參閱 Set-ExecutionPolicy。
獲取你的執行策略
若要獲取在當前會話中有效的 Windows PowerShell 執行策略,則使用 Get-ExecutionPolicy cmdlet。
以下命令獲取當前執行策略:
Get-ExecutionPolicy
若要獲取影響當前會話的所有執行策略,並按優先順序顯示它們,請鍵入:
Get-ExecutionPolicy -List
結果將類似於下面的示例輸出:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine AllSigned
在這種情況下,有效的執行策略是 RemoteSigned,因為當前用戶的執行策略優先於為本地計算機設置的執行策略。
若要獲取為某個特定作用域設置的執行策略,請使用 Get-ExecutionPolicy 的 Scope 參數。
例如,以下命令獲取當前用戶作用域的執行策略。
Get-ExecutionPolicy -Scope CurrentUser
