Get-ExecutionPolicy

Wyświetla obowiązującą politykę wykonywania skryptów.

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] ] [-List]

  • -Scope — wskazuje konkretny zakres, dla którego chcesz odczytać politykę (np. CurrentUser albo LocalMachine).
  • -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.