Get-ExecutionPolicy

Pobiera zasady wykonywania dla bieżącej sesji.

Składnia

Get-ExecutionPolicy
   [[-Scope] <ExecutionPolicyScope>]
   [-List]
   [<CommonParameters>]

Opis

Aby wyświetlić zasady wykonywania dla każdego zakresu w kolejności pierwszeństwa, użyj polecenia Get-ExecutionPolicy -List. Aby wyświetlić obowiązujące zasady wykonywania sesji programu PowerShell bez Get-ExecutionPolicy parametrów.

Obowiązujące zasady wykonywania są określane przez zasady wykonywania, które są ustawiane przez Set-ExecutionPolicy ustawienia i zasady grupy.

Aby uzyskać więcej informacji, zobacz about_Execution_Policies.

Przykłady

Przykład 1. Pobieranie wszystkich zasad wykonywania

To polecenie wyświetla zasady wykonywania dla każdego zakresu w kolejności pierwszeństwa.

Get-ExecutionPolicy -List

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

Polecenie Get-ExecutionPolicy cmdlet używa parametru Lista do wyświetlania zasad wykonywania każdego zakresu.

Przykład 2. Ustawianie zasad wykonywania

W tym przykładzie pokazano, jak ustawić zasady wykonywania dla komputera lokalnego.

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

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

Polecenie Set-ExecutionPolicy cmdlet używa parametru ExecutionPolicy do określenia zasad RemoteSigned . Parametr Zakres określa domyślną wartość zakresu LocalMachine. Aby wyświetlić ustawienia zasad wykonywania, użyj Get-ExecutionPolicy polecenia cmdlet z parametrem Lista .

Przykład 3. Uzyskiwanie obowiązujących zasad wykonywania

W tym przykładzie pokazano, jak wyświetlić obowiązujące zasady wykonywania dla sesji programu PowerShell.

PS> Get-ExecutionPolicy -List

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

PS> Get-ExecutionPolicy

AllSigned

Polecenie Get-ExecutionPolicy cmdlet używa parametru Lista do wyświetlania zasad wykonywania każdego zakresu. Polecenie Get-ExecutionPolicy cmdlet jest uruchamiane bez parametru, aby wyświetlić obowiązujące zasady wykonywania AllSigned.

Przykład 4. Odblokowywanie skryptu w celu uruchomienia go bez zmiany zasad wykonywania

W tym przykładzie pokazano, jak zasady wykonywania RemoteSigned uniemożliwiają uruchamianie niepodpisanych skryptów.

Najlepszym rozwiązaniem jest odczytanie kodu skryptu i sprawdzenie, czy jest bezpieczne przed użyciem Unblock-File polecenia cmdlet. Polecenie Unblock-File cmdlet odblokuje skrypty, aby mogły działać, ale nie zmienia zasad wykonywania.

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:

Parametr Set-ExecutionPolicyExecutionPolicy służy do określania zasad RemoteSigned . Zasady są ustawione dla zakresu domyślnego LocalMachine.

Polecenie Get-ExecutionPolicy cmdlet pokazuje, że RemoteSigned to obowiązujące zasady wykonywania dla bieżącej sesji programu PowerShell.

Skrypt Start-ActivityTracker.ps1 jest wykonywany z bieżącego katalogu. Skrypt jest blokowany przez usługę RemoteSigned , ponieważ skrypt nie jest podpisany cyfrowo.

W tym przykładzie kod skryptu został sprawdzony i zweryfikowany jako bezpieczny do uruchomienia. Polecenie Unblock-File cmdlet używa parametru Path do odblokowania skryptu.

Aby sprawdzić, czy Unblock-File zasady wykonywania nie zostały zmienione, Get-ExecutionPolicy wyświetla obowiązujące zasady wykonywania RemoteSigned.

Skrypt Start-ActivityTracker.ps1 jest wykonywany z bieżącego katalogu. Skrypt zaczyna działać, ponieważ został odblokowany przez Unblock-File polecenie cmdlet.

Parametry

-List

Pobiera wszystkie wartości zasad wykonywania dla sesji wymienionej w kolejności pierwszeństwa. Domyślnie Get-ExecutionPolicy pobiera tylko obowiązujące zasady wykonywania.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

Określa zakres, na który mają wpływ zasady wykonywania.

Obowiązujące zasady wykonywania są określane według kolejności pierwszeństwa w następujący sposób:

  • MachinePolicy. Ustaw przez zasady grupy dla wszystkich użytkowników komputera.
  • UserPolicy. Ustaw przez zasady grupy dla bieżącego użytkownika komputera.
  • Proces. Wpływa tylko na bieżącą sesję programu PowerShell.
  • CurrentUser. Wpływa tylko na bieżącego użytkownika.
  • LocalMachine. Domyślny zakres, który ma wpływ na wszystkich użytkowników komputera.
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

Dane wejściowe

None

Get-ExecutionPolicy nie akceptuje danych wejściowych z potoku.

Dane wyjściowe

ExecutionPolicy

Polecenie cmdlet zawsze zwraca wartość Unrestricted na platformach Linux i macOS.

Uwagi

Zasady wykonywania są częścią strategii zabezpieczeń programu PowerShell. Zasady wykonywania określają, czy można załadować pliki konfiguracji, takie jak profil programu PowerShell, czy uruchamiać skrypty. I czy skrypty muszą być podpisane cyfrowo przed ich uruchomieniem.