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 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 ustawione 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 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 cmdlet Set-ExecutionPolicy używa parametru ExecutionPolicy w celu określenia zasad RemoteSigned. Parametr Zakres określa domyślną wartość zakresu LocalMachine. Aby wyświetlić ustawienia zasad wykonywania, użyj polecenia cmdlet z parametrem listy .

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 cmdlet używa parametru list do wyświetlania zasad wykonywania każdego zakresu. Polecenie cmdlet Get-ExecutionPolicy 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 pokazano, jak RemoteSigned zasady wykonywania uniemożliwiają uruchamianie niepodpisanych skryptów.

Najlepszym rozwiązaniem jest odczytanie kodu skryptu i sprawdzenie, czy jest to bezpieczne przed przy użyciu polecenia cmdlet Unblock-File. Polecenie cmdlet Unblock-File odblokuje skrypty, aby można je było uruchamiać, 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:

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

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

W tym przykładzie kod skryptu został przejrzyszony i zweryfikowany jako bezpieczny do uruchomienia. Polecenie cmdlet używa parametru path , aby odblokować skrypt.

Aby sprawdzić, czy Unblock-File nie zmieniły zasad wykonywania, 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 polecenie cmdlet Unblock-File.

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.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.
  • proces. Dotyczy tylko bieżącej sesji programu PowerShell.
  • CurrentUser. Dotyczy tylko bieżącego użytkownika.
  • LocalMachine. Domyślny zakres, który ma wpływ na wszystkich użytkowników komputera.
Typ:ExecutionPolicyScope
Dopuszczalne wartości:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Position:0
Domyślna wartość:Effective execution policy
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

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

Dane wyjściowe

ExecutionPolicy

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.