Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Get-ExecutionPolicy pokazuje Restricted mimo zmian

Termin Definicja
Get-ExecutionPolicy pokazuje Restricted mimo zmian

Get-ExecutionPolicy pokazuje „Restricted” mimo zmian wskazuje, że polityka wykonywania skryptów jest nadpisywana przez zasady grupy na wyższym poziomie (Machine zamiast CurrentUser).

Czym jest komunikat „Get-ExecutionPolicy pokazuje Restricted mimo zmian”

Komunikat ten oznacza, że polecenie Get-ExecutionPolicy zwraca wartość Restricted, chociaż wcześniej ustawiono inną politykę wykonywania skryptów, na przykład za pomocą Set-ExecutionPolicy. Sama zmiana mogła zostać wykonana poprawnie, lecz nie musi obowiązywać w zakresie, z którego aktualnie korzysta PowerShell. Polityka wykonywania nie jest pojedynczym przełącznikiem przypisanym wyłącznie do całego systemu. Może być określona osobno dla bieżącego procesu, bieżącego użytkownika, wszystkich użytkowników komputera albo zasad grupy.

Wartość Restricted oznacza, że w danym kontekście uruchamianie skryptów PowerShell jest zablokowane. Nie oznacza to jednak, że każda forma użycia poleceń PowerShell zostaje wyłączona. Poszczególne polecenia wpisywane interaktywnie mogą nadal działać, podczas gdy pliki skryptów, takie jak .ps1, będą odrzucane. W rezultacie próba uruchomienia skryptu może kończyć się komunikatem o zablokowaniu wykonywania, mimo że wcześniej ustawiono na przykład RemoteSigned albo Bypass.

Jak PowerShell wybiera obowiązującą politykę

Do sprawdzenia wszystkich dostępnych zakresów służy polecenie Get-ExecutionPolicy -List. Zwracana lista pozwala ustalić, czy wartość pochodzi z zakresu MachinePolicy, UserPolicy, Process, CurrentUser lub LocalMachine. Najwyższy priorytet mają ustawienia dostarczone przez zasady grupy, czyli MachinePolicy i UserPolicy. Jeżeli w którymś z tych zakresów znajduje się Restricted, próba zmiany polityki przez Set-ExecutionPolicy -Scope CurrentUser albo Set-ExecutionPolicy -Scope LocalMachine nie musi zmienić efektywnego wyniku.

Typowym źródłem nieporozumienia jest ustawienie wartości dla CurrentUser, a następnie odczyt bez wskazania zakresu. Polecenie Get-ExecutionPolicy bez parametrów pokazuje politykę efektywną, czyli tę, która po uwzględnieniu wszystkich poziomów ma zastosowanie w bieżącej sesji. Nie jest to prosty odczyt ostatniej wartości zapisanej w profilu użytkownika. Z tego powodu należy porównać wynik zwykłego odczytu z pełną listą zakresów.

Znaczenie ma również sposób uruchomienia PowerShella. Parametr -ExecutionPolicy przekazany przy starcie procesu może wpływać na zakres Process tylko dla danej sesji. Po zamknięciu okna takie ustawienie przestaje obowiązywać. Osobną sytuację stanowi uruchomienie skryptu z parametrem -ExecutionPolicy Bypass, ponieważ zmienia ono zachowanie konkretnego procesu, a niekoniecznie zapisuje trwałą konfigurację użytkownika lub komputera.

W systemach zarządzanych centralnie wartość może być narzucona przez lokalną albo domenową zasadę grupy. W takim przypadku sprawdzenie rejestru lub ponowne użycie Set-ExecutionPolicy może nie wystarczyć. Należy ustalić, czy konfiguracja pochodzi z edytora zasad grupy, profilu administracyjnego albo innego mechanizmu zarządzania urządzeniem, a następnie ocenić, czy modyfikacja jest zgodna z regułami obowiązującymi na danym komputerze.

Typowe problemy i błędy diagnostyczne - Get-ExecutionPolicy pokazuje Restricted mimo zmian

Jednym z częstych błędów jest wykonanie polecenia zmieniającego politykę w niewłaściwym zakresie. Przykładowo ustawienie CurrentUser może nie przynieść widocznego efektu, gdy nadrzędna zasada określa MachinePolicy lub UserPolicy. Podobnie zmiana dla LocalMachine wymaga odpowiednich uprawnień, a jej brak może spowodować odrzucenie operacji albo skłonić do zastosowania innego zakresu, który nadal nie będzie miał pierwszeństwa.

Warto też sprawdzić, czy odczyt i zmiana są wykonywane w tej samej wersji oraz tej samej sesji PowerShella. PowerShell 5.1 i nowsze wydania PowerShell mogą korzystać z odmiennych profili, lokalizacji konfiguracji i sposobów uruchamiania. Różnicę może powodować także otwarcie zwykłego okna zamiast konsoli uruchomionej przez narzędzie administracyjne, użycie zdalnej sesji albo start procesu przez program, który przekazuje własne parametry.

Nie należy utożsamiać polityki wykonywania z pełnym mechanizmem bezpieczeństwa skryptów. Ustawienie Unrestricted lub Bypass nie usuwa blokady pochodzącej z każdego innego zabezpieczenia. Plik pobrany z internetu może mieć przypisany identyfikator strefy, a program antywirusowy, kontrola aplikacji lub ochrona systemu może nadal zablokować jego uruchomienie. Zmiana polityki bez ustalenia źródła problemu może więc nie rozwiązać błędu, a jednocześnie zmniejszyć poziom ochrony.

Przy analizie problemu przydatne jest zebranie pełnego wyniku Get-ExecutionPolicy -List, informacji o wersji PowerShella oraz dokładnego komunikatu pojawiającego się podczas uruchamiania skryptu. Należy również sprawdzić, czy problem dotyczy wszystkich skryptów, czy tylko jednego pliku. Jeśli nie można zmienić wartości narzuconej przez zasady organizacyjne, właściwym działaniem jest ustalenie właściciela konfiguracji, a nie wielokrotne wymuszanie lokalnej zmiany.

Kiedy trzeba poprosić o ocenę stanu sprzętu - Get-ExecutionPolicy pokazuje Restricted mimo zmian

Pomoc serwisowa jest uzasadniona, gdy wynik Get-ExecutionPolicy pozostaje niezrozumiały mimo sprawdzenia wszystkich zakresów, gdy polityka zmienia się po ponownym uruchomieniu komputera albo gdy skrypty nie działają tylko w określonym środowisku. W takiej sytuacji można przeanalizować profile PowerShella, parametry uruchamiania, zasady lokalne, ustawienia rejestru oraz ewentualne ograniczenia narzucone przez oprogramowanie ochronne, bez przypadkowego obniżania zabezpieczeń.

W serwisie komputerowym w Warszawie zgłoszenie można przekazać do Warszawskiego Pogotowia Komputerowego 24/7, przedstawiając treść komunikatu, wynik polecenia Get-ExecutionPolicy -List oraz informację, czy komputer jest zarządzany przez organizację. Takie dane ułatwiają rozróżnienie lokalnego błędu konfiguracji od ustawienia narzuconego odgórnie. Naprawy trwają tam z reguły do 3 dni roboczych, zależnie od zakresu wymaganej diagnostyki.

Przed zmianą polityki warto wykonać kopię ważnych skryptów i zapisać dotychczasowe wyniki poleceń diagnostycznych. Pozwala to odtworzyć stan początkowy oraz ocenić, czy problem wynika z zakresu CurrentUser, LocalMachine, bieżącego procesu czy zasad grupy. Szczególnie ostrożnie należy postępować na komputerach używanych do pracy, ponieważ lokalna zmiana może zostać później nadpisana albo pozostawać w sprzeczności z regułami bezpieczeństwa obowiązującymi w danym środowisku.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę