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
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
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 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
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
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.