Niemal każdy administrator systemu ma do czynienia z zaplanowanymi zadaniami. Są one niewiarygodnie pomocne, aby wykonać coś w oparciu o różne wyzwalacze, ale wymagają dużo ręcznego wysiłku, aby skonfigurować je poprawnie.
Zaletą zaplanowanych zadań jest to, że można zbudować jeden z głębokim poziomie wyrafinowania z opcji wyzwalaczy i różnych kontekstów bezpieczeństwa. Jednak tam, gdzie króluje złożoność, mogą pojawić się błędy w konfiguracji. Podczas tworzenia skryptów automatyzacji można utworzyć zaplanowane zadanie za pomocą PowerShell, aby ułatwić ten proces. Użycie PowerShell pomaga ustandaryzować zarządzanie i konfigurację skomplikowanych zadań zaplanowanych, co pozwala uniknąć błędów wynikających z ręcznego wprowadzania danych.
Buduj akcję zadania zaplanowanego
W minimalnym zakresie zadanie zaplanowane ma akcję, wyzwalacz i grupę powiązanych ustawień. Po utworzeniu zadania należy je również zarejestrować w systemie. Aby utworzyć pojedyncze zaplanowane zadanie, należy wykonać każdą czynność osobno.
Aby utworzyć akcję, należy użyć cmdletu New-ScheduledTaskAction, który określa polecenie do uruchomienia. Utwórzmy akcję, która będzie trochę meta i wywoła skrypt PowerShell.
Poniższe polecenie stanowi przykład wywołania silnika PowerShell i przekazania do niego skryptu przy użyciu wszystkich odpowiednich przełączników wiersza polecenia, aby skrypt był uruchamiany nieinteraktywnie. Plik skryptu znajduje się na maszynie, na której będzie uruchamiane zaplanowane zadanie.
$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "C:\MyScript.ps1"'
Utwórz wyzwalacz
Następnie potrzebny jest wyzwalacz. Masz do wyboru kilka wartości, ale w tym zadaniu użyjemy określonego czasu – 3 rano – do jednorazowego wykonania tego skryptu. Aby uzyskać pełną listę opcji, sprawdź stronę pomocy cmdletu New-ScheduledTaskTrigger.
$Trigger = New-ScheduledTaskTrigger -Once -At 3am
Utwórz ustawienia
Następnie utwórz zaplanowane zadanie za pomocą polecenia New-ScheduledTask. To polecenie wymaga podania wartości parametru Settings, nawet jeśli nie używasz żadnych specjalnych. Dlatego uruchamiasz polecenie New-ScheduledTaskSettingsSet, aby utworzyć obiekt do przekazania w tym miejscu.
$Settings = New-ScheduledTaskSettingsSet
Twórz zaplanowane zadanie
Po przypisaniu wszystkich obiektów jako zmiennych, przekaż każdą z tych zmiennych do polecenia New-ScheduledTask, aby utworzyć obiekt zaplanowanego zadania.
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Zarejestruj zaplanowane zadanie
W tym momencie utworzyłeś obiekt zaplanowanego zadania w pamięci. Aby dodać zaplanowane zadanie na komputerze, należy je zarejestrować za pomocą cmdletu Register-ScheduledTask.
Poniższy przykład rejestruje zaplanowane zadanie do uruchomienia pod określoną nazwą użytkownika. Aby uruchomić zadanie w kontekście określonego użytkownika, należy podać jego hasło. Warto zajrzeć do dokumentacji polecenia Register-ScheduledTask, aby zobaczyć wszystkie opcje, których można użyć z tym cmdletem.
Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'username' -Password 'passhere'
Jeśli wykonałeś wszystkie kroki poprawnie, powinieneś zobaczyć nowo utworzone zaplanowane zadanie w Harmonogramie zadań.
Po zarejestrowaniu zaplanowanego zadania i wyświetleniu go w Task Scheduler, można teraz uruchomić cmdlet Get-ScheduledTask, aby zobaczyć zadanie.