Podczas próby uruchomienia skryptu PowerShell, który nie został podpisany przez zaufanego wydawcę, może zostać wyświetlony następujący błąd zabezpieczeń:
„script.ps1 :File path\script.ps1 cannot be loaded. Plik path\script.ps1 nie jest podpisany cyfrowo. Nie można uruchomić tego skryptu w bieżącym systemie.”

Ten błąd bezpieczeństwa może wystąpić, gdy polityka wykonania programu PowerShell jest ustawiona na Allsigned lub Remotesigned, a skrypt nie jest podpisany.

Polityka wykonania Allsigned umożliwia wykonanie wszystkich skryptów Powershell, które są podpisane. Przed wykonaniem skryptu użytkownik zostanie poproszony o potwierdzenie, że ufa wydawcy, który podpisał skrypt.

Remote execution policy ogranicza wykonywanie pobranych skryptów, które nie są podpisane. Skrypty, które są wykonywane z komputera lokalnego nie muszą być podpisane.

Rozwiązanie

Istnieją różne metody pokonania tego błędu. Możesz wybrać albo podpisać skrypt PowerShell, zmienić politykę wykonania, ominąć politykę lub odblokować plik, aby można go było uruchomić raz na tej sesji.

Sprawdź politykę wykonania

Przede wszystkim sprawdź swoją politykę wykonania za pomocą cmdlet Get-ExecutionPolicy

PS C:\> Get-ExecutionPolicyAllSigned

Parametr listy w cmdlet Get-ExecutionPolicy mówi o polityce wykonania dla każdego zakresu.

PS C:\> Get-ExecutionPolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned

Domyślna polityka wykonania dla wszystkich wersji systemu Windows z wyjątkiem Windows 2012 R2 to Restricted. Domyślną polityką wykonania w Windows 2012 R2 jest RemoteSigned.

Zmiana polityki wykonania na stałe

Najprostszą, ale niezabezpieczoną metodą pozbycia się tego komunikatu o błędzie jest zmiana ExecutionPolicy za pomocą cmdletu SetExecutionPolicy. Poniższe polecenie ustawia politykę wykonania na nieograniczoną.

PS C:\> Set-ExecutionPolicy unrestricted

Naciśnij Y, aby potwierdzić zmianę, gdy pojawi się monit. Zmiana polityki jest aktualizowana w rejestrze i pozostanie, dopóki nie zostanie ponownie zmieniona.

Changing Execution Policy Temporarily

Zamiast zmieniać politykę wykonania na stałe, można ustawić inną politykę dla pojedynczej sesji PowerShell. Można to zrobić za pomocą parametru ExecutionPolicy w powershell.exe

Otwórz wiersz poleceń lub PowerShell i wykonaj polecenie:

C:\> powershell.exe -executionpolicy -bypass

Powyższe polecenie otwiera sesję PowerShell z polityką wykonania dla tej sesji ustawioną na Bypass, co oznacza, że nic nie jest blokowane.

Odblokowanie pliku, który został pobrany

Gdy polityka wykonania ma wartość RemoteSigned, pliki, które są pobierane z Internetu (lub z wiadomości e-mail) są blokowane w celu ochrony przed uruchomieniem niebezpiecznych skryptów. Jeśli masz pewność, że zawartość skryptu jest bezpieczna, możesz go odblokować i uruchomić na swojej sesji za pomocą cmdletu Unblock-File

PS C:\> Unblock-File -Path C:\Downloads\script1.ps1

Po zmianie polityki wykonywania na stałe lub tymczasowo dla sesji lub konkretnego skryptu możesz nadal go uruchamiać, ale zanim to zrobisz, upewnij się, że zawartość skryptu nie uszkodzi twojego komputera

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.