Jak utworzyć zaplanowane zadanie za pomocą programu PowerShell

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

zaplanowane zadanie programu PowerShell

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.

program PowerShell tworzy zaplanowane zadanie

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.

utwórz zaplanowaną misję PowerShell

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

PowerShell uruchamia zaplanowane zadanie

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

utwórz zaplanowane zadanie

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

PowerShell zaplanowanego zadania

Link do głównej publikacji