Aufgabenplanung: Task exportieren und importieren

Die Windows Aufgabenplanung ist für automatisierte Jobs sehr nützlich. Hat man auf einem Computer viele Tasks angelegt und wechselt auf einen neuen Computer, so kann man die geplanten Tasks übertragen. Hierzu verwendet man PowerShell. Mit einem bestimmten Befehl lässt sich ein Task exportieren und natürlich auf dem neuen Computer auch importieren.

Windows Aufgabenplanung

Tasks in der Windows Aufgabenplanung

Nutzt man die Windows Suche, so findet man die Aufgabenplanung. Diese ist in vielen Fällen sehr hilfreich, denn man kann PowerShell Scripte, aber auch vieles weitere automatisieren. Doch je nach Anwendungsfall kann es mühselig sein einen solchen geplanten Task einzurichten. Möchte man diese geplanten Aufgaben nun auf einen neuen Computer übertragen, so hilft ein PowerShell Befehl zum Importieren und Exportieren.

Alle Aufgaben auflisten

Natürlich hab ein Betriebssystem wie Windows jede Menge vordefinierte Aufgaben in der Planung. Eine Liste aller geplanten Tasks kann man mit dem Grund-Befehl Get-ScheduledTask auflisten.

PowerShell Get-ScheduledTask

Wie man sieht ist die Liste relativ lange, jedoch sind das meist Standard-Tasks, welche auf einem Windows Client automatisch generiert werden. Deswegen sind nur die selbst erstellen Aufgaben zum exportieren und importieren wichtig. Diese befinden sich in der Regel in der obersten Ebene “\”.

Task Exportieren mit PowerShell

Zum Exportieren eines Tasks der Aufgabenplanung wird dasPowerShell Cmdlet Export-ScheduledTask verwendet. Als Parameter muss der Name des Tasks natürlich angegeben werden.

Das Export Format des PowerShell Befehls ist XML. Um die XML Datei abzuspeichern, muss Out-File verwendet werden. Somit hat man die geplante Aufgabe in eine Datei exportiert.

Export-ScheduledTask -TaskName "Adobe Acrobat Update Task" | Out-File "C:\Users\huberj\Desktop\yourtask.xml"

Möchte man alle Tasks eines Ordners, beziehungsweise einer Ebene exportieren, so benötigt man eine Schleife in PowerShell. Der Hintergrund ist, dass Export-ScheduledTask immer nur einen Task bearbeiten kann.

Get-ScheduledTask -TaskPath "\" |
foreach {Export-ScheduledTask -TaskName $_.TaskName -TaskPath "\" |
Out-File ($_.TaskName + ".xml") }
Task exportieren PowerShell

Exportiert werden hier die Dateien (Aufgaben der Aufgabenplanung) übrigens in das lokale Benutzerprofil des Benutzers. Dies ist in der Regel “C:\Users\%username%”. Nun kann man die einzelnen Tasks auf einen anderen Computer übertragen, also importieren.

Task importieren mit PowerShell

Da man nun beim Exportieren der Aufgaben eine XML-Datei erhält, so lassen sich diese (mit PowerShell) relativ einfach importieren. Wie schon vermuten lässt, gibt es für den Import das Commandlet Register-ScheduledTask.

Da man die exportieren Tasks nicht händisch anlegt, sondern eine XML Datei verwendet wird, lautet der PowerShell Befehl bei einer einzelnen Aufgabe wie folgt:

Register-ScheduledTask -xml (Get-Content -Raw C:\Users\huberj\Desktop\yourtask.xml) -TaskName YourTaskName

Hat man davor allerdings mehrere geplante Aufgaben exportiert, so hilft auch hier wieder eine PowerShell Schleife beim Importieren der Dateien:

Get-ChildItem C:\Users\huberj\ *.xml |
foreach {Register-ScheduledTask -xml (Get-Content -Raw $_.Name) -TaskName $_.BaseName}

Das Übertragen der Aufgabenplanung von einem zum anderen Computer sollte somit ein Kinderspiel sein.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments