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 參數來指定原則 RemoteSignedScope 參數會指定預設範圍值 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。

輸出

ExecutionPolicy

Cmdlet 一律會在Linux和macOS平台上傳 回 Unrestricted 。 在 Windows 平臺上,它會傳回目前的執行原則。

備註

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