Windows Task Scheduler może być bardzo przydatnym narzędziem do uruchamiania skryptów PowerShell przy starcie systemu, logowaniu, według harmonogramu lub innych zdarzeń.
To jest tutorial krok po kroku, jak można to zrobić w Windows 10, ale kroki w tym przewodniku mają zastosowanie do wszystkich nowoczesnych systemów operacyjnych Windows klienta i Windows serwera. Harmonogram zadań systemu Windows jest domyślnie wbudowanym programem systemu Windows, więc nie jest wymagana żadna dodatkowa instalacja oprogramowania.
Tak to zrobisz
- Uruchom Harmonogram zadań systemu Windows, można to zrobić wyszukując go lub uruchamiając (START+R) taskschd.msc.
- Kliknij prawym przyciskiem myszy na Bibliotekę Harmonogramu Zadań, a następnie wybierz Utwórz zadanie…. Pojawi się okno popup z zakładkami General, Triggers, Actions, Conditions i Settings.
W zakładce „General”
- W zakładce General nadaj nazwę swojemu zadaniu wypełniając pole Name.
- Zaznacz Uruchom, czy użytkownik jest zalogowany, czy nie w Opcje zabezpieczeń
- Zaznacz Uruchom z najwyższymi uprawnieniami
W zakładce „Wyzwalacze”
W zakładce Wyzwalacze masz wiele opcji, kiedy chcesz, aby to zadanie zostało uruchomione, ale w tym przykładzie użyję harmonogramu.
- Wybierz Nowy, a następnie wybierz harmonogram w Rozpocznij zadanie:
- W tym miejscu możesz wybrać cokolwiek pasuje do twoich potrzeb, ale są dwie ważne rzeczy do zapamiętania. Pierwszą z nich jest wybranie opcji Enabled na dole, a drugą jest sprawienie, aby czas i data rozpoczęcia były w przyszłości. Jeśli czas rozpoczęcia zostanie przekroczony podczas tworzenia zadania, zadanie nigdy nie zostanie uruchomione i nigdy nie zostanie uruchomione ponownie. Za każdym razem, gdy ponownie konfigurujesz zadanie, musisz również ustawić czas na przyszłość.
- Kliknij OK
W zakładce „Akcje”
- w zakładce Akcja wybierz Nowy i wypełnij następująco:
Program/skrypt:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
To jest link do twojego pliku powershell.exe, nawet jeśli masz nowszą wersję to znajduje się on w folderze v1.0.
Dodaj argumenty (opcjonalnie):-noprofile -executionpolicy bypass -file
"C:\powershell_script\test.ps1"
(zastąp ścieżką do pliku skryptu).
Parametr-noprofile
uruchamia PowerShell bez żadnych profili
Parametr-executionpolicy bypass
obchodzi wszelkie ograniczenia nałożone przez politykę wykonywania, to powinno być bezpieczne, jeśli znasz swój kod.
Parametr-file
służy do otwierania pliku. (Twój plik skryptowy .ps1) - Kliknij OK. Zostaniesz poproszony o wprowadzenie danych uwierzytelniających użytkownika, który powinien uruchomić skrypt, użytkownik ten powinien mieć prawa administracyjne.
Testowanie zadania
Dobrym testem do wykonania, jeśli chcesz zobaczyć, że to działa, jest wykonanie prostego skryptu, który wyprowadza bieżącą datę i czas do pliku tekstowego.
Get-Date >> "c:\powershell_script\testlogg.txt"
.