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 文稿是從目前目錄執行。 遠端 簽署 會封鎖文本,因為腳本未以數位方式簽署。
在此範例中,腳本的程式代碼已檢閱並驗證為安全執行。 Cmdlet Unblock-File
會使用 Path 參數來解除封鎖腳本。
若要確認 Unblock-File
未變更執行原則, Get-ExecutionPolicy
請顯示有效的執行原則 RemoteSigned。
腳本 Start-ActivityTracker.ps1 會從目前的目錄執行。 腳本會開始執行,因為 Cmdlet 已解除封鎖 Unblock-File
。
參數
-List
取得工作階段的所有執行原則值,依照優先順序列出。 根據預設, Get-ExecutionPolicy
只會取得有效的執行原則。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
指定受執行原則影響的範圍。
有效的執行原則取決於優先順序,如下所示:
- MachinePolicy。 由電腦的所有用戶設定 群組原則。
- UserPolicy。 由電腦目前使用者的 群組原則 設定。
- 進程。 只會影響目前的PowerShell會話。
- CurrentUser。 只會影響目前的使用者。
- LocalMachine。 影響計算機所有用戶的預設範圍。
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
Get-ExecutionPolicy
不接受來自管線的輸入。
輸出
Cmdlet 一律會在Linux和macOS平台上傳回 Unrestricted 。
備註
執行原則是 PowerShell 安全性策略的一部分。 執行原則會決定您可以載入組態檔,例如 PowerShell 配置檔,還是執行腳本。 此外,腳本是否必須先以數位方式簽署,才能執行。