Get-ExecutionPolicy

取得當前會話的執行策略。

語法

All

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 小程式使用 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指令長 ExecutionTPolicy 參數來指定該政策。RemoteSigned Scope 參數指定預設範圍值 LocalMachine。 要查看執行政策設定,請使用 帶有 Get-ExecutionPolicy 參數的 cmdlet。

範例 3:取得有效執行策略

此範例展示了如何顯示 PowerShell 會話的有效執行政策。

PS> Get-ExecutionPolicy -List

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

PS> Get-ExecutionPolicy

AllSigned

指令 Get-ExecutionPolicy 小程式使用 List 參數來顯示每個作用域的執行策略。 Get-ExecutionPolicy指令檔執行時未設定參數以顯示有效執行策略。 AllSigned

範例 4:解除封鎖腳本以執行該腳本,且不更改執行策略

這個例子說明執行策略如何 RemoteSigned 防止你執行未簽名的腳本。

最佳做法是先閱讀腳本程式碼並確認安全,再使用Unblock-File指令長。 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。

指令檔顯示 Get-ExecutionPolicy 是 RemoteSigned 目前 PowerShell 會話的有效執行策略。

Start-ActivityTracker.ps1腳本是從目前目錄執行的。 劇本被阻擋 RemoteSigned 是因為劇本沒有數位簽名。

在這個例子中,腳本的程式碼被審查並驗證為安全可執行。 Unblock-File指令本 Path 參數會用來解除腳本的阻塞。

為了驗證該Unblock-File行為沒有改變執行策略,Get-ExecutionPolicy請顯示有效執行策略。 RemoteSigned

腳本 , Start-ActivityTracker.ps1 是從目前目錄執行的。 腳本開始執行是因為 cmdlet 解阻 Unblock-File 了它。

參數

-List

會取得該會話的所有執行策略值。 預設情況下, Get-ExecutionPolicy 只會取得有效的執行策略。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Scope

指定受執行政策影響的範圍。

有效執行政策依優先順序決定如下:

  • MachinePolicy。 由群組原則設定,適用於電腦的所有用戶。
  • UserPolicy。 由電腦目前使用者的組策略設定。
  • Process。 只影響目前的 PowerShell 會話。
  • LocalMachine。 預設範圍,影響所有電腦使用者。
  • CurrentUser。 只影響目前的使用者。

參數屬性

類型:ExecutionPolicyScope
預設值:Effective execution policy
接受的值:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:0
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

None

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

輸出

ExecutionPolicy

在 Linux 和 macOS 平台上,該指令檔總是無 限制 回傳。 在 Windows 平台上,它會回傳目前的執行策略。

備註

執行策略是 PowerShell 安全策略的一部分。 執行策略決定你是否能載入設定檔,例如你的 PowerShell 設定檔,或執行腳本。 以及腳本是否必須在執行前進行數位簽名。