Udostępnij za pośrednictwem


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 dla sesji programu PowerShell, użyj Get-ExecutionPolicy bez parametrów.

Obowiązujące zasady wykonywania są określane przez zasady wykonywania, które są ustawiane przez Set-ExecutionPolicy i ustawienia zasad 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 List 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 RemoteSigned zasad. Parametr Zakres określa domyślną wartość zakresu: LocalMachine. Aby wyświetlić ustawienia zasad wykonywania, użyj Get-ExecutionPolicy polecenia cmdlet z parametrem List .

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 List 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 zmieniania zasad wykonywania

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

Najlepszym rozwiązaniem jest odczytanie kodu skryptu i sprawdzenie, czy jest ono 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:

Używa Set-ExecutionPolicy parametru ExecutionPolicy do określenia RemoteSigned zasad. Zasady są ustawiane dla zakresu domyślnego. LocalMachine

Polecenie Get-ExecutionPolicy cmdlet pokazuje, że RemoteSigned są 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, RemoteSigned ponieważ skrypt nie jest podpisany cyfrowo.

W tym przykładzie kod skryptu został przejrzyszony 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 uległy zmianie, 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. 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 według zasad grupy dla wszystkich użytkowników komputera.
  • UserPolicy. Ustaw według zasad grupy dla bieżącego użytkownika komputera.
  • Process. Dotyczy tylko bieżącej sesji programu PowerShell.
  • LocalMachine. Domyślny zakres, który ma wpływ na wszystkich użytkowników komputera.
  • CurrentUser. Dotyczy tylko bieżącego użytkownika.
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

Nie można potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

ExecutionPolicy

Polecenie cmdlet zawsze zwraca wartość Unrestricted na platformach Linux i macOS. Na platformach windows zwraca bieżące zasady wykonywania.

Uwagi

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