共用方式為


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:False
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 不接受來自管線的輸入。

輸出

ExecutionPolicy

備註

執行原則是 PowerShell 安全性策略的一部分。 執行原則會決定您是否可以載入組態檔,例如 PowerShell 配置檔或執行腳本。 此外,腳本是否必須在執行之前進行數字簽署。