Udostępnij za pomocą


Get-ExecutionPolicy

Pobiera zasady wykonawcze dla bieżącej sesji.

Składnia

All

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, przejdź do about_Execution_Policies.

Przykłady

Przykład 1: Pobieranie wszystkich polityk 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 Get-ExecutionPolicy używa listy parametru do wyświetlenia polityki wykonywania dla 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 zakresu określa domyślną wartość zakresu, LocalMachine. Aby wyświetlić ustawienia zasad wykonywania, użyj polecenia cmdlet Get-ExecutionPolicy z parametrem List.

Przykład 3. Pobierz skuteczną politykę wykonania

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 Get-ExecutionPolicy używa listy parametru do wyświetlenia polityki wykonywania dla każdego zakresu. Polecenie cmdlet Get-ExecutionPolicy jest uruchamiane bez parametru w celu wyświetlenia obowiązującej polityki wykonywania, AllSigned.

Przykład 4. Odblokowywanie skryptu w celu uruchomienia go bez zmieniania 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 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. Polityka jest ustawiona 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 Unblock-File używa parametru Path, aby odblokować skrypt.

Aby sprawdzić, czy Unblock-File nie zmienił 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 poleceń dla sesji. Domyślnie Get-ExecutionPolicy pobiera tylko obowiązującą politykę wykonywania.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów: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. Ustawione przez zasadę grupową dla wszystkich użytkowników tego komputera.
  • UserPolicy. Ustawione przez zasady 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.

Właściwości parametru

Typ:ExecutionPolicyScope
Domyślna wartość:Effective execution policy
Dopuszczalne wartości:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:0
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

None

Nie można przekazywać obiektów do tego cmdletu.

Dane wyjściowe

ExecutionPolicy

Polecenie cmdlet zawsze zwraca Nielimitowane 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.