Podczas próby uruchomienia skryptu PowerShell, który nie został podpisany przez Trusted Publisher, może zostać wyświetlony następujący błąd zabezpieczeń.
<Plik skryptu PowerShell>nie jest podpisany cyfrowo. Nie można uruchomić
tego skryptu w bieżącym systemie. Aby uzyskać więcej informacji na temat uruchamiania skryptów i ustawiania zasad wykonywania, zobacz
about_Execution_Policies na stronie http://go.microsoft.com/fwlink/?LinkID=135170.
Jak rozwiązać błąd Skrypt PowerShell nie jest podpisany cyfrowo?
Istnieją pewne rozwiązania tego problemu. Możesz podpisać skrypt PowerShell, który chcesz uruchomić, zmienić politykę wykonania, ominąć politykę lub odblokować plik, aby można go było uruchomić raz w danej sesji.
Sprawdź politykę wykonania
Możesz uruchomić cmdlet Get-ExecutionPolicy, aby uzyskać politykę wykonania.
Możesz również dodać parametr -list, aby uzyskać politykę wykonania dla każdego zakresu.
Zmień politykę wykonania na stałe
Najprostszą, ale niezabezpieczoną metodą pozbycia się tego komunikatu o błędzie jest zmiana ExecutionPolicy za pomocą cmdletu Set-ExecutionPolicy i ustawienie polityki wykonania na nieograniczoną.
Set-ExecutionPolicy -ExecutionPolicy unrestricted
Change Execution Policy Temporarily
Aby tymczasowo zmienić politykę wykonywania, można użyć cmdletu Set-ExecutionPolicy z ustawieniem ByPass.
Set-ExecutionPolicy -ExecutionPolicy ByPass
Poniżej przedstawiono szczegółowe informacje na temat dopuszczalnych wartości parametru -ExecutionPolicy:
- Restricted. Nie ładuje plików konfiguracyjnych ani nie uruchamia skryptów. Restricted to domyślna polityka wykonywania.
- AllSigned. Wymaga, aby wszystkie skrypty i pliki konfiguracyjne były podpisane przez zaufanego wydawcę, w tym skrypty pisane na komputerze lokalnym.
- RemoteSigned. Wymaga, aby wszystkie skrypty i pliki konfiguracyjne pobierane z Internetu były podpisane przez zaufanego wydawcę.
- Unrestricted. Wczytuje wszystkie pliki konfiguracyjne i uruchamia wszystkie skrypty. W przypadku uruchomienia niepodpisanego skryptu, który został pobrany z Internetu, przed jego uruchomieniem zostanie wyświetlony monit o zezwolenie.
- Obejście. Nic nie jest blokowane i nie ma żadnych ostrzeżeń ani monitów.
- Niezdefiniowane. Usuwa aktualnie przypisaną politykę wykonania z bieżącego zakresu. Ten parametr nie usunie polityki wykonania, która jest ustawiona w zakresie zasad grupy.
Domyślnym zakresem dla polecenia Set-ExecutionPolicy jest LocalMachine. Można również określić, na jakim zakresie zostanie ustawiona polityka poprzez dodanie parametru -Scope. Poniżej znajduje się szczegółowy opis zakresów, które można ustawić:
- Process: Polityka wykonania wpływa tylko na bieżący proces PowerShell.
- CurrentUser: Polityka wykonania wpływa tylko na bieżącego użytkownika.
- LocalMachine: Polityka wykonania wpływa na wszystkich użytkowników komputera.
Aby usunąć politykę wykonania z określonego zakresu, ustaw politykę wykonania dla tego zakresu na Undefined.