PowerShell系列:PowerShell腳本執(zhí)行策略梳理
PowerShell 腳本執(zhí)行策略用于控制何時以及何種方式執(zhí)行 PowerShell 腳本。通過執(zhí)行策略可以限制 PowerShell 腳本的執(zhí)行范圍,為系統(tǒng)管理員提供一定的安全保障。策略可以限制執(zhí)行腳本的用戶、限制執(zhí)行腳本的來源等等。這些策略可以在計算機本地或組策略中進行配置。最終保護計算機免受惡意腳本和非法操作的侵害。
今天給大家講解PowerShell腳本執(zhí)行策略相關的知識!
1、執(zhí)行策略等級
- AllSigned:要求所有腳本和配置文件都由受信任的發(fā)布者簽名,包括在本地計算機上編寫的腳本;從尚未分類為受信任或不受信任的發(fā)布者運行腳本之前,需要確認是否執(zhí)行。
- Bypass:腳本執(zhí)行沒有任何限制。
- RemoteSigned:本地計算機上的本地腳本,不需要數(shù)字簽名直接允許;從Internet或其他計算機下載的腳本,需要腳本必須經(jīng)過數(shù)字簽名才能運行。
- Restricted:允許單個命令,但不允許腳本,它會阻止運行所有腳本文件。
- Undefined:當前范圍沒有執(zhí)行策略。簡單來說如果所有范圍的執(zhí)行策略都是Undefined的話,實際使用的測試和Default策略保持一致。
- Default:默認執(zhí)行策略,Window客戶端為Restricted;Windows服務器為RemoteSigned 。
- Unrestricted:腳本運行不受簽名限制,如果腳本不來自本地 Intranet 區(qū)域的腳本和配置文件,運行之前會有警告。
2、執(zhí)行策略范圍
- MachinePolicy:由組策略為計算機的所有用戶設置。
- UserPolicy:由計算機當前用戶的組策略設置。
- Process:范圍 Process 僅影響當前 PowerShell 會話;執(zhí)行策略保存在環(huán)境變量 $env:PSExecutionPolicyPreference中,而不是注冊表中。 關閉 PowerShell 會話時,變量和值將被刪除。
- CurrentUser:執(zhí)行策略僅影響當前用戶。 它存儲在 HKEY_CURRENT_USER 注冊表子項中。
- LocalMachine:執(zhí)行策略會影響當前計算機上的所有用戶。 它存儲在 HKEY_LOCAL_MACHINE 注冊表子項中。
3、執(zhí)行策略命令語法格式
Set-ExecutionPolicy
[-ExecutionPolicy] <ExecutionPolicy>
[[-Scope] <ExecutionPolicyScope>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
參數(shù)說明:
- -ExecutionPolicy :指定執(zhí)行策略。
- -Scope:指定受執(zhí)行策略影響的范圍。 默認作用域為 LocalMachine。
- -Force:調整所有腳本提示,建議謹慎使用該參數(shù)。默認值為 None,可以指定為 False。
- -WhatIf:顯示運行該 cmdlet 時會發(fā)生什么情況。默認值為False。
- -Confirm:提示你在運行 cmdlet 之前進行確認。默認值是False。
4、執(zhí)行策略常用命令
獲取當前執(zhí)行策略。
Get-ExecutionPolicy
獲取影響當前會話的所有執(zhí)行策略。
Get-ExecutionPolicy -List
調整腳本執(zhí)行策略。
Set-ExecutionPolicy ALLSIGNED
刪除執(zhí)行策略。
若要刪除特定范圍的執(zhí)行策略,請將執(zhí)行策略設置為 Undefined。
注意:Windows 客戶端的默認策略為Restricted 。
#刪除本地計算機所有用戶的執(zhí)行策略
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine