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