PowerShell oferuje szereg różnych warstw zabezpieczeń, które mają na celu ochronę przed uruchamianiem złośliwych skryptów i poleceń. Na przykład, domyślnie nie jest możliwe wykonanie skryptu pobranego z sieci, chyba że zmienisz zasady wykonywania w PowerShell. Dodatkowe środki bezpieczeństwa uniemożliwiają uruchomienie skryptu przez podwójne kliknięcie. Nie masz możliwości powiązania skryptów PS1 z PowerShell, a jedynym sposobem ich uruchomienia jest kliknięcie prawym przyciskiem myszy i wybór opcji uruchomienia. Podwójne kliknięcie spowoduje otwarcie skryptu w Notatniku. To podejście jest korzystne z perspektywy bezpieczeństwa, ale może być uciążliwe, jeśli chcesz, aby skrypt PowerShell był wykonywany automatycznie w ramach zaplanowanego zadania. Na szczęście można to obejść w prosty sposób, wykorzystując skrypt wsadowy do automatycznego uruchamiania skryptów PowerShell.
Skrypt wsadowy
Poniżej przedstawiamy skrypt wsadowy, który posłuży do automatycznego uruchamiania skryptów PowerShell na systemie Windows 10. Każdy skrypt PowerShell będzie wymagał osobnego skryptu wsadowego.
Składnia
@ECHO OFF PowerShell.exe -Command "Ścieżka do skryptu" PAUSE
W miejscu „Ścieżka do skryptu” wpisz rzeczywistą lokalizację skryptu PowerShell, który chcesz uruchomić. Zobaczmy przykład:
Przykład
@ECHO OFF PowerShell.exe -Command "C:\Reminder-Scripts\MilkBuy-Milk.ps1" PAUSE
Otwórz Notatnik i wklej powyższy skrypt. Następnie zapisz plik z rozszerzeniem .bat.
Plik wsadowy otwiera PowerShell i uruchamia wskazany skrypt. Mimo to, dwukrotne kliknięcie na skrypt PowerShell na pulpicie nie spowoduje jego automatycznego uruchomienia. W wyniku działania pliku wsadowego otworzy się okno wiersza polecenia, gdzie zobaczysz komunikat „Naciśnij dowolny klawisz, aby kontynuować”. Dopiero po naciśnięciu klawisza skrypt PowerShell zostanie uruchomiony. Jeśli chcesz, aby skrypt działał bez Twojej interwencji, po prostu usuń linię „PAUSE” z powyższego skryptu. Wówczas powinien wyglądać tak:
@ECHO OFF PowerShell.exe -Command "Ścieżka do skryptu"
Harmonogram zadań i skrypty PowerShell
Zakładając, że chcesz, aby skrypt PowerShell był automatycznie uruchamiany jako część zaplanowanego zadania, musisz najpierw stworzyć odpowiedni skrypt wsadowy, jak pokazano wcześniej. Następnie, podczas tworzenia nowego zaplanowanego zadania, wybierz skrypt wsadowy jako akcję, która ma być wykonana w odpowiedzi na wyzwalacz. To sprawi, że skrypt PowerShell zostanie uruchomiony.
Choć w tym przykładzie użyliśmy Harmonogramu zadań, jeśli korzystasz z innej aplikacji do automatyzacji, wciąż będziesz musiał wywołać skrypt wsadowy. Jedynym wyjątkiem jest sytuacja, w której używana aplikacja do automatyzacji potrafi otworzyć PowerShell i zdefiniować skrypt PowerShell do uruchomienia.
newsblog.pl