Get-ExecutionPolicy
取得目前會話的執行原則。
Syntax
Get-ExecutionPolicy
[[-Scope] <ExecutionPolicyScope>]
[-List]
[<CommonParameters>]
Description
若要依優先順序顯示每個範圍的執行原則,請使用 Get-ExecutionPolicy -List
。 若要查看 PowerShell 會話的有效執行原則,不搭配任何參數使用 Get-ExecutionPolicy
。
有效的執行原則是由 所 Set-ExecutionPolicy
設定的執行原則和組策略設定所決定。
如需詳細資訊,請參閱 about_Execution_Policies。
範例
範例 1:取得所有執行原則
此命令會依優先順序顯示每個範圍的執行原則。
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine Undefined
Cmdlet Get-ExecutionPolicy
會使用 List 參數來顯示每個範圍的執行原則。
範例 2:設定執行原則
此範例示範如何設定本機計算機的執行原則。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
Cmdlet Set-ExecutionPolicy
會使用 ExecutionPolicy 參數來指定原則 RemoteSigned
。 Scope 參數會指定預設範圍值 LocalMachine
。
若要檢視執行原則設定,請使用 Get-ExecutionPolicy
Cmdlet 搭配 List 參數。
範例 3:取得有效的執行原則
此範例示範如何顯示PowerShell工作階段的有效執行原則。
PS> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
PS> Get-ExecutionPolicy
AllSigned
Cmdlet Get-ExecutionPolicy
會使用 List 參數來顯示每個範圍的執行原則。 Cmdlet Get-ExecutionPolicy
在沒有參數的情況下執行,以顯示有效的執行原則 AllSigned
。
範例 4:解除封鎖腳本以執行,而不變更執行原則
此範例示範執行原則如何 RemoteSigned
防止您執行未簽署的腳本。
最佳做法是先讀取腳本的程序代碼,並在使用 Unblock-File
Cmdlet 之前先確認其安全。 Cmdlet Unblock-File
會解除封鎖腳本,使其可以執行,但不會變更執行原則。
PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
PS> Get-ExecutionPolicy
RemoteSigned
PS> .\Start-ActivityTracker.ps1
.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS> Unblock-File -Path .\Start-ActivityTracker.ps1
PS> Get-ExecutionPolicy
RemoteSigned
PS> .\Start-ActivityTracker.ps1
Task 1:
會 Set-ExecutionPolicy
使用 ExecutionPolicy 參數來指定原則 RemoteSigned
。 此原則是針對預設範圍 LocalMachine
所設定。
Cmdlet Get-ExecutionPolicy
會顯示 RemoteSigned
目前 PowerShell 工作階段的有效執行原則。
腳本 Start-ActivityTracker.ps1
會從目前目錄執行。 腳本遭到 RemoteSigned
封鎖,因為腳本未經過數字簽署。
在此範例中,腳本的程式代碼已檢閱並驗證為安全執行。 Cmdlet Unblock-File
會使用 Path 參數來解除封鎖腳本。
若要確認Unblock-File
未變更執行原則,Get-ExecutionPolicy
請顯示有效的執行原則 。 RemoteSigned
腳本 Start-ActivityTracker.ps1
會從目前目錄執行。 腳本會開始執行,因為它已由 Unblock-File
Cmdlet 解除封鎖。
參數
-List
取得工作階段的所有執行原則值。 根據預設, Get-ExecutionPolicy
只會取得有效的執行原則。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
指定受執行原則影響的範圍。
有效的執行原則取決於優先順序,如下所示:
MachinePolicy
. 由計算機的所有用戶設定組策略。UserPolicy
. 由電腦目前使用者的組策略設定。Process
. 只會影響目前的PowerShell會話。LocalMachine
. 影響計算機所有用戶的預設範圍。CurrentUser
. 只影響目前的使用者。
Type: | ExecutionPolicyScope |
Accepted values: | CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy |
Position: | 0 |
Default value: | Effective execution policy |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
Cmdlet 一律會在Linux和macOS平台上傳 回 Unrestricted 。 在 Windows 平臺上,它會傳回目前的執行原則。
備註
執行原則是 PowerShell 安全性策略的一部分。 執行原則會決定您是否可以載入組態檔,例如 PowerShell 配置檔或執行腳本。 而且,腳本是否必須在執行之前以數位方式簽署。