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