Jeśli wiesz, jak pisać proste skrypty PowerShell lub Batch, możesz zautomatyzować wiele rzeczy w systemie Windows 10. W rzeczywistości, nawet jeśli musisz poświęcić trochę czasu na napisanie idealnego skryptu do czegoś, czas zaoszczędzony, gdy jest dobry do zrobienia będzie warte czasu, który poświęciłeś na jej pisanie. To powiedziawszy, skrypty mogą być niebezpieczne, co oznacza, że gdy próbujesz uruchamiać skrypty w PowerShell, pojawia się dość długi komunikat o błędzie, który zasadniczo mówi, że „uruchamianie skryptów jest wyłączone w tym systemie”.
Jest to środek bezpieczeństwa w PowerShell, który zapobiega uruchamianiu złośliwych skryptów i potencjalnie szkodzi systemowi. Oczywiście skrypt, który sam napisałeś, nie będzie złośliwy i powinien dać się uruchomić. Aby rozwiązać ten problem, musisz zmienić zasady wykonywania w PowerShell. Oto jak.
Napraw uruchamianie skryptów jest wyłączone w tym systemie
Otwórz PowerShell z uprawnieniami administratora i uruchom następujące polecenie.
Get-ExecutionPolicy -List
Spowoduje to wyświetlenie polityki wykonywania, która została ustawiona dla twojego użytkownika i dla twojego komputera. Jest prawdopodobne, że obie zasady, a przynajmniej zasady CurrentUser, są ustawione na Restricted.
Aby naprawić błąd „uruchamianie skryptów jest wyłączone w tym systemie”, musisz zmienić politykę dla CurrentUser. Aby to zrobić, uruchom następujące polecenie.
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Potwierdź, że chcesz dokonać zmiany, a będziesz mógł uruchomić skrypt.
Powinno to umożliwić uruchamianie większości skryptów, jednak jeśli nadal otrzymujesz ten sam błąd, prawdopodobnie musisz zmienić zasady wykonywania dla komputera. Możesz zmodyfikować poprzednie polecenie, aby to zrobić, ale będziesz potrzebować do tego uprawnień administratora.
Uruchom to polecenie.
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
Potwierdź, że chcesz wprowadzić zmianę, a następnie spróbuj uruchomić skrypt.
Powinno to załatwić sprawę, jeśli sam napisałeś skrypt, ale jeśli pobrałeś go online i nie jest on podpisany, musisz zmienić politykę wykonywania na Nieograniczone. Aby to zrobić, zamień „RemoteSigned” we wszystkich powyższych poleceniach na „Unrestricted”. Bądź bardzo ostrożny, które skrypty uruchamiasz, jeśli je pobierasz. Mogą być niebezpieczne.
Set-ExecutionPolicy
Jest to dość proste polecenie do ustawiania zasad wykonywania w PowerShell . To polecenie może mieć cztery różne parametry lub stany: Restricted, AllSigned, RemoteSigned i Unrestricted.
Przełącznik -Scope definiuje, do czego ma zastosowanie zmiana zasad. Kiedy wpiszesz „CurrentUser”, zostanie on zastosowany tylko do bieżącego użytkownika, a kiedy wpiszesz „LocalMachine”, zostanie zastosowany do całego systemu