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