共用方式為


Get-ExecutionPolicy

取得當前會話中的執行原則。

語法

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

Get-ExecutionPolicy Cmdlet 會使用 List 參數來顯示每個範圍的執行原則。

範例 2:設定執行原則

此範例示範如何設定本機計算機的執行原則。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List

Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

Set-ExecutionPolicy Cmdlet 會使用 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

Get-ExecutionPolicy Cmdlet 會使用 List 參數來顯示每個範圍的執行原則。 Get-ExecutionPolicy Cmdlet 是在沒有參數的情況下執行,以顯示有效的執行原則,AllSigned

範例 4:解除封鎖腳本以執行,而不變更執行原則

此範例示範 RemoteSigned 執行原則如何防止您執行未簽署的腳本。

最佳做法是讀取腳本的程序代碼,並在使用 Unblock-File Cmdlet 之前先確認它是安全的Unblock-File Cmdlet 會解除封鎖腳本,使其可以執行,但不會變更執行原則。

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

Get-ExecutionPolicy Cmdlet 顯示 RemoteSigned 是目前 PowerShell 會話的有效執行原則。

Start-ActivityTracker.ps1 文稿會從目前目錄執行。 腳本會遭到 RemoteSigned 封鎖,因為腳本未經過數字簽署。

在此範例中,腳本的程式代碼已檢閱並驗證為安全執行。 Unblock-File Cmdlet 會使用 Path 參數來解除封鎖腳本。

若要確認 Unblock-File 未變更執行原則,Get-ExecutionPolicy 顯示有效的執行原則,RemoteSigned

腳本 Start-ActivityTracker.ps1 會從目前目錄執行。 腳本會開始執行,因為它已由 Unblock-File Cmdlet 解除封鎖。

參數

-List

取得會話中所有執行原則的值。 根據預設,Get-ExecutionPolicy 只會取得有效的執行原則。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Scope

指定受執行原則影響的範圍。

有效的執行原則取決於優先順序,如下所示:

  • MachinePolicy。 由計算機的所有用戶設定組策略。
  • UserPolicy。 由目前電腦使用者的群組原則設定。
  • Process。 只會影響目前的PowerShell會話。
  • LocalMachine。 影響電腦所有使用者的預設範圍。
  • CurrentUser。 只影響目前的使用者。
類型:ExecutionPolicyScope
接受的值:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Position:0
預設值:Effective execution policy
必要:False
接受管線輸入:True
接受萬用字元:False

輸入

None

您不能將物件透過管道傳送到此 Cmdlet。

輸出

ExecutionPolicy

Cmdlet 一律會在 Linux 和 macOS 平台上傳回 不受限制。 在 Windows 平台上,它會傳回目前的執行政策。

備註

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