Jak automatycznie uruchamiać skrypty programu PowerShell w systemie Windows 10

PowerShell ma wiele różnych warstw zabezpieczeń, które zapobiegają wykonywaniu złośliwych skryptów i poleceń. Na przykład domyślnie nie można uruchomić skryptu pobranego z Internetu, chyba że zmienisz zasady wykonywania programu PowerShell. Inne środki bezpieczeństwa uniemożliwiają wykonanie skryptu przez dwukrotne kliknięcie. Nie możesz skojarzyć skryptów PS1 z PowerShell, a jedynym sposobem uruchomienia skryptu jest kliknięcie go prawym przyciskiem myszy i wybranie opcji uruchamiania. Dwukrotne kliknięcie otworzy go w Notatniku. Jest to świetne rozwiązanie ze względów bezpieczeństwa, ale denerwujące, jeśli chcesz, aby skrypt PowerShell był wykonywany po uruchomieniu zaplanowanego zadania. Obejście jest proste. Możesz użyć skryptu wsadowego, aby automatycznie uruchamiać skrypty programu PowerShell.

Skrypt wsadowy

Poniżej znajduje się skrypt wsadowy potrzebny do automatycznego uruchamiania skryptów PowerShell w systemie Windows 10. Każdy skrypt PowerShell będzie potrzebował własnego skryptu wsadowego.

Składnia

@ECHO OFF
PowerShell.exe -Command "Path to script"
PAUSE

Zastąp „Ścieżka do skryptu” rzeczywistą ścieżką do skryptu programu PowerShell, który chcesz wykonać. Rozważmy następujący przykład;

Przykład

@ECHO OFF
PowerShell.exe -Command "C:Reminder-ScriptsMilkBuy-Milk.ps1"
PAUSE

Otwórz Notatnik i wklej w nim skrypt. Zapisz plik z rozszerzeniem .bat.

To, co robi te pliki wsadowe, polega na tym, że otwiera PowerShell, a następnie uruchamia skrypt, który wskazałeś. Nadal nie można dwukrotnie kliknąć skryptu programu PowerShell na pulpicie i automatycznie uruchomić go w programie PowerShell. Bieżący plik otworzy okno wiersza polecenia i wyświetli komunikat „Naciśnij dowolny klawisz, aby kontynuować”. Dopiero po naciśnięciu klawisza zostanie uruchomiony skrypt PowerShell. Jeśli wolisz, aby skrypt działał bez Twojej interwencji, zmodyfikuj powyższy skrypt i usuń wiersz „PAUSE”. To powinno wyglądać tak;

@ECHO OFF
PowerShell.exe -Command "Path to script"

Harmonogram zadań i skrypty programu PowerShell

Zakładamy, że chcesz automatycznie uruchomić skrypt PowerShell jako akcję zaplanowanego zadania. Aby to osiągnąć, musisz najpierw utworzyć odpowiedni skrypt Batch, jak pokazano powyżej, aby uruchomić skrypt PowerShell. Następnie podczas tworzenia zaplanowanego zadania wybierz skrypt wsadowy w obszarze Akcja, którą ma podjąć w odpowiedzi na wyzwalacz. W efekcie spowoduje to uruchomienie skryptu programu PowerShell.

Jako przykładu użyliśmy Harmonogramu zadań, ale jeśli używasz innej aplikacji do automatyzacji, nadal będziesz musiał wywołać skrypt Batch. Jedynym wyjątkiem jest sytuacja, gdy używana aplikacja do automatyzacji może otworzyć program PowerShell, a następnie wskazać skrypt programu PowerShell.