Lista zadań dla większości administratorów systemu obejmuje pisanie różnych skryptów i ich uruchamianie. Zaplanowanie uruchomienia skryptu za pomocą interfejsu graficznego konsoli Harmonogramu zadań jest dość prostym zadaniem. W tym małym artykule pokażemy nowy sposób tworzenia zaplanowanego zadania za pomocą konsoli PowerShell.
Załóżmy, że musisz utworzyć zadanie, które uruchomi skrypt PowerShell w każdy wtorek i czwartek o godzinie 22:00.
Aby utworzyć nowe zaplanowane zadanie w systemie Windows 7 i starszych wersjach, musisz mieć co najmniej zainstalowany program PowerShell 3.0. Najpierw należy uruchomić wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień i zaimportować moduł PowerShell o nazwie PSScheduledJob.
Moduł importu PSScheduledJob
Teraz utwórzmy nowy wyzwalacz pracy:
$ Trigger = New-JobTrigger -Weekly -DaysOfWeek 2,4 -O 22:00
Następnie utwórz nowe zadanie o nazwie BackupDBTask i powiąż z nim utworzony wyzwalacz:
Register-ScheduledJob -Name BackupDBTask -FilePath "C: \ ps \ backupdb.ps1" -Trigger $ Trigger
Jak widać, nowe zaplanowane zadanie zostało pomyślnie utworzone. Można go znaleźć za pomocą GUI Harmonogramu zadań w następującej sekcji: Harmonogram zadań -> Biblioteka harmonogramu zadań -> Microsoft ->Windows -> PowerShell -> SheduledJobs.
Podczas tworzenia nowego zadania PowerShell dodatkowo generuje plik xml z definicją zaplanowanego zadania. Możesz znaleźć ten plik w folderze:
% USERPROFILE% \ AppData \ Local \ Microsoft \ Windows \ PowerShell \ ScheduledJobs \ BackupDBTask
Możesz użyć tego pliku xml do zaimportowania utworzonego zadania na inne komputery lub serwery:
Register-ScheduledTask -Xml (Get-Content '\ server1 \ ScheduledJobDefinition.xml' | out-string) -TaskName "BackupDBTask"
Folder wyjściowy będzie zawierał historię uruchomienia zadania.
W PowerShell 3.0 (został wprowadzony w Windows 8 i Windows Server 2012) możesz tworzyć zaplanowane zadania w znacznie łatwiejszy sposób.
Teraz nie musisz importować modułu PowerShell, aby pracować z zaplanowanymi zadaniami.
Wystarczy utworzyć nowy obiekt wyzwalacza:
$ Trigger = New-JobTrigger -Weekly -DaysOfWeek 2,4 -O 22:00
Jeśli potrzebujesz uruchomić zadanie z określonego konta, uzyskaj poświadczenia:
$ credent = Get-Credential theitbros \ admin1
Aby utworzyć nowe zadanie, które powinno być uruchamiane z najwyższymi uprawnieniami, uruchom następującą komendę:
$ elevat = New-ScheduledJobOption -RunElevated
Register-ScheduledJob -Name BackupDBTask2 -FilePath C: \ ps \ backupdb.ps1 -Trigger $ Trigger -Credential $ credent –ScheduledJobOption $ elevat
Wskazówka. Jeśli chcesz uruchomić zadanie z lokalnego konta systemowego, użyj polecenia:
Register-ScheduledJob -Name BackupDBTask2 -FilePath C: \ ps \ backupdb.ps1 -Trigger $ Trigger -User „System” –ScheduledJobOption $ elevat
Aby uzyskać pełną listę włączonych zaplanowanych zadań w sekcji Microsoft \ Windows \ Powershell, uruchom polecenie:
Get-ScheduledTask -TaskPath \ Microsoft \ Windows \ Pow * | ? stan -ne wyłączone
Aby uzyskać szczegółowe informacje o określonym zadaniu, uruchom:
Get-ScheduledTask BackupDBTask | Get-ScheduledTaskInfo
Aby wyłączyć określone zadanie, użyj polecenia cmdlet Disable-ScheduledTask:
Get-ScheduledTask BackupDBTask | Disable-ScheduledTask