Get-ExecutionPolicy to cmdlet PowerShella, który pokazuje, jaka polityka wykonywania skryptów obowiązuje w Twoim systemie. Mówiąc po ludzku: odpowiada na pytanie „czy ten komputer w ogóle pozwoli mi odpalić skrypt .ps1, a jeśli tak, to pod jakimi warunkami”. To pierwsza komenda, do której sięgasz, gdy PowerShell odmawia uruchomienia skryptu i wypluwa czerwoną ścianę tekstu o tym, że „running scripts is disabled on this system”. Sama niczego nie zmienia — tylko odczytuje stan. Do zmiany służy jej siostra Set-ExecutionPolicy.
Składnia i najważniejsze opcje
Podstawowa składnia jest krótka: Get-ExecutionPolicy [[-Scope]
-Scope— wskazuje konkretny zakres, dla którego chcesz odczytać politykę (np.CurrentUseralboLocalMachine).-List— wyświetla polityki dla wszystkich zakresów naraz, w kolejności pierwszeństwa. Najlepszy widok diagnostyczny.MachinePolicy— zakres ustawiany przez Group Policy dla wszystkich użytkowników maszyny (nadrzędny).UserPolicy— zakres ustawiany przez Group Policy dla bieżącego użytkownika.Process— dotyczy tylko bieżącej sesji PowerShella; znika po jej zamknięciu.CurrentUser— polityka dla zalogowanego użytkownika.LocalMachine— domyślny zakres dla wszystkich użytkowników komputera.
Przykłady użycia
Get-ExecutionPolicy— zwraca politykę efektywną, czyli tę, która faktycznie obowiązuje Cię w tej chwili.Get-ExecutionPolicy -List— pokazuje tabelę wszystkich zakresów i ich ustawień; idealne, gdy chcesz zrozumieć, skąd bierze się dana wartość.Get-ExecutionPolicy -Scope CurrentUser— sprawdza politykę ustawioną tylko dla Twojego konta.Get-ExecutionPolicy -Scope Process— sprawdza politykę obowiązującą wyłącznie w tej sesji.if ((Get-ExecutionPolicy) -eq 'Restricted') { Write-Host 'Skrypty zablokowane' }— przykład użycia wyniku w warunku w skrypcie.
Częste błędy i pułapki
Mylenie z Set-ExecutionPolicy. Get- tylko czyta — jeśli chcesz odblokować skrypty, potrzebujesz Set-, zwykle z uprawnieniami administratora dla zakresu LocalMachine.
Pierwszeństwo zakresów. Jeśli polityka „efektywna” wygląda dziwnie i nie da się jej zmienić, prawie zawsze winne jest MachinePolicy lub UserPolicy z Group Policy — te wygrywają z ustawieniami lokalnymi i nie nadpiszesz ich Set-ExecutionPolicy.
Fałszywe poczucie bezpieczeństwa. Polityka wykonywania to nie mechanizm zabezpieczeń, tylko bezpiecznik przeciw przypadkowemu odpaleniu skryptu. Da się ją obejść (np. powershell -ExecutionPolicy Bypass), więc nie traktuj jej jak ściany ogniowej.
Powiązane komendy: Set-ExecutionPolicy, Get-Help about_Execution_Policies, Unblock-File.