Benutzerdefinierten Task für Taskplaner per GPO verteilen (mit erweiterten Einstellungen)
Wenn Ihnen die Einstellungsmöglichkeiten des Befehls "schtasks" oder "at" nicht ausreichen und sie den Task für den Taskplaner feiner einstellen möchten, habe ich hier folgenden Trick !
Als Beispiel für ein Szenario gebe ich folgendes vor:
Sie möchten z.b. das jeder Rechner in der Domäne täglich um 21:00 herunterfährt(wenn z.B. die lieben Kollegen den Rechner mal wieder nicht heruntergefahren haben) und das aber nur wenn der Rechner mindestens 1 Stunde im Idle-Modus war.
Mit dem "schtasks" Befehl ist das erstere zwar möglich, aber die Kombination mit der Idle-Erweiterung jedoch nicht. Mit folgendem Trick läßt sich das jedoch machen:
Schritt 1:
Anlegen des Tasks im Taskplaner auf dem Server oder einer Workstation
hier die Einstellungen:
Schritt 2:
Kopieren Sie den Task aus C:\Windows\tasks" in eine Freigabe auf den Server auf die jeder Benutzer Zugriff hat.
Schritt 3:
Legen Sie auf dem Server ein neues GroupPolicy-Objekt an und definieren ein Startup-Script mit folgendem Inhalt:
Die Freigabepfade und Dateinamen sind entsprechend anzupassen.
Der "schtasks"-Befehl am Ende hat die Funktion den Benutzeraccount unter dem der Task läuft auf den Lokalen Systemaccount zu setzen, da beim kopieren des Tasks auf einen anderen Rechner die Einstellung per default auf den momentanen Benutzer gestellt wird und der Task so nicht korrekt ausgeführt würde.
Zum ändern der Einstellungen des Tasks braucht man jetzt nur noch das *.job File in den "Windows\Tasks"-Ordner ziehen, Einstellungen vornehmen, und dann wieder aus dem "Windows\Tasks"-Ordner in die Freigabe kopieren.
Fertig!
Mfg
Uwe
Als Beispiel für ein Szenario gebe ich folgendes vor:
Sie möchten z.b. das jeder Rechner in der Domäne täglich um 21:00 herunterfährt(wenn z.B. die lieben Kollegen den Rechner mal wieder nicht heruntergefahren haben) und das aber nur wenn der Rechner mindestens 1 Stunde im Idle-Modus war.
Mit dem "schtasks" Befehl ist das erstere zwar möglich, aber die Kombination mit der Idle-Erweiterung jedoch nicht. Mit folgendem Trick läßt sich das jedoch machen:
Schritt 1:
Anlegen des Tasks im Taskplaner auf dem Server oder einer Workstation
hier die Einstellungen:
Schritt 2:
Kopieren Sie den Task aus C:\Windows\tasks" in eine Freigabe auf den Server auf die jeder Benutzer Zugriff hat.
Schritt 3:
Legen Sie auf dem Server ein neues GroupPolicy-Objekt an und definieren ein Startup-Script mit folgendem Inhalt:
copy /y \\SERVER\ClientApps\Shutdown.job %windir%\tasks
schtasks.exe /change /tn "Shutdown" /ru "System"
Die Freigabepfade und Dateinamen sind entsprechend anzupassen.
Der "schtasks"-Befehl am Ende hat die Funktion den Benutzeraccount unter dem der Task läuft auf den Lokalen Systemaccount zu setzen, da beim kopieren des Tasks auf einen anderen Rechner die Einstellung per default auf den momentanen Benutzer gestellt wird und der Task so nicht korrekt ausgeführt würde.
Zum ändern der Einstellungen des Tasks braucht man jetzt nur noch das *.job File in den "Windows\Tasks"-Ordner ziehen, Einstellungen vornehmen, und dann wieder aus dem "Windows\Tasks"-Ordner in die Freigabe kopieren.
Fertig!
Mfg
Uwe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 76935
Url: https://administrator.de/contentid/76935
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
15 Kommentare
Neuester Kommentar
Hallo Uwe,
Beschreibung ist echt super. Genau so was suche ich.
Wie stelle ich dies auf einem Windos Server 2008 an?
Hört sich vielleicht etwas albern an, aber leider bin ich hier gar nicht der Profi.
Wo eröffne ich den Task. Wo und wie öffne ich das 1. Fenster Deiner Beschreibung?
Gruss und Danke,
Markus
Beschreibung ist echt super. Genau so was suche ich.
Wie stelle ich dies auf einem Windos Server 2008 an?
Hört sich vielleicht etwas albern an, aber leider bin ich hier gar nicht der Profi.
Wo eröffne ich den Task. Wo und wie öffne ich das 1. Fenster Deiner Beschreibung?
Gruss und Danke,
Markus
@ softmeister
ich habe versucht deine Anleitung anzuwenden.
Ich möchte gerne nach einer Leerlaufzeit von 15 min den Computer sperren.
Habe eine Freigabe erstellt, in der sich der Task befindet.
Dieser wird mittels Anmeldeskript auf die Clients kopiert.
Das klappt soweit auch.
Aber leider wird unter 'Ausführen als' der aktuell angemeldete Benutzer eingetragen und nicht der Systemaccount.
Die Syntax entspricht exakt die in deiner Anleitung.
Vielleicht noch nen Tipp für mich?
Danke im Voraus.
mfg
Alforno
ich habe versucht deine Anleitung anzuwenden.
Ich möchte gerne nach einer Leerlaufzeit von 15 min den Computer sperren.
Habe eine Freigabe erstellt, in der sich der Task befindet.
Dieser wird mittels Anmeldeskript auf die Clients kopiert.
Das klappt soweit auch.
Aber leider wird unter 'Ausführen als' der aktuell angemeldete Benutzer eingetragen und nicht der Systemaccount.
Die Syntax entspricht exakt die in deiner Anleitung.
Vielleicht noch nen Tipp für mich?
Danke im Voraus.
mfg
Alforno
Danke für deine schnelle Antwort.
Leider ist mir das nicht ganz schlüssig.
Du beschreibst doch oben im Szenario, dass du Clients in einer Domäne herunterfahren möchtest.
Die User werden ja nicht alle Admin-Rechte haben, oder?
Ich habe das jetzt gerade nochmal ausprobiert.
Wenn ich mit an dem Client mit Admin-Rechten anmelde, dann wird der Task auch nicht ausgeführt.
Habe ich etwas grundsätzliches Missverstanden und wir beide reden aneinander vorbei?
Danke im Voraus.
mfg
Alforno
Leider ist mir das nicht ganz schlüssig.
Du beschreibst doch oben im Szenario, dass du Clients in einer Domäne herunterfahren möchtest.
Die User werden ja nicht alle Admin-Rechte haben, oder?
Ich habe das jetzt gerade nochmal ausprobiert.
Wenn ich mit an dem Client mit Admin-Rechten anmelde, dann wird der Task auch nicht ausgeführt.
Habe ich etwas grundsätzliches Missverstanden und wir beide reden aneinander vorbei?
Danke im Voraus.
mfg
Alforno
Nein, das ist ja das Problem es funktioniert nicht.
Den Namen des Jobs habe entsprechend angepasst.
Das sollte doch auch funktionieren wenn User die sich an den Rechnern anmelden nur Benutzerrechte haben, oder?
Ich habe hier leider keine Domäne sondern nur eine Arbeitsgruppe.
Welche NTFS Berechtigungen muss ich denn an der Freigabe auf dem Server einstellen?
Du schreibst ja oben, dass Benutzerrechte ausreichen.
Muss dort auch noch System eingetragen werden?
Das muss doch irgendwie machbar sein, ich verzweifel hier langsam.
Danke für deine Mühe.
mfg
Alforno
Den Namen des Jobs habe entsprechend angepasst.
Das sollte doch auch funktionieren wenn User die sich an den Rechnern anmelden nur Benutzerrechte haben, oder?
Ich habe hier leider keine Domäne sondern nur eine Arbeitsgruppe.
Welche NTFS Berechtigungen muss ich denn an der Freigabe auf dem Server einstellen?
Du schreibst ja oben, dass Benutzerrechte ausreichen.
Muss dort auch noch System eingetragen werden?
Das muss doch irgendwie machbar sein, ich verzweifel hier langsam.
Danke für deine Mühe.
mfg
Alforno
Richtig ich habe keine Domäne, es ist lediglich eine Arbeitsgruppe.
Funktionieren sollte es dennoch, wenn auch der Arbeitsaufwand zum verteilen größer ist.
Die Clients sind gemischt. Windows 2000 und XP mit SP2 bzw. SP3
Aber nehmen wir mal als Referenz-Client einen mit XP Pro SP2.
Wenn ich mich am Client als Admin anmelde und gpedit.msc starte, dann kann ich dort lokal Anmeldeskripte eintragen.
Mein .job liegt in der Freigabe auf dem Server.
Mein Anmeldeskript lege ich lokal unter C:\Windows\system32\GroupPolicy\machine\scripts\startup\ ab und binde dies wie oben beschrieben per gpedit ein.
Das sollte es doch schon gewesen sein, oder nicht?
Auf dem Server läuft Windows 2000 Server.
Danke Dir für die Mühe.
mfg
Alforno
Funktionieren sollte es dennoch, wenn auch der Arbeitsaufwand zum verteilen größer ist.
Die Clients sind gemischt. Windows 2000 und XP mit SP2 bzw. SP3
Aber nehmen wir mal als Referenz-Client einen mit XP Pro SP2.
Wenn ich mich am Client als Admin anmelde und gpedit.msc starte, dann kann ich dort lokal Anmeldeskripte eintragen.
Mein .job liegt in der Freigabe auf dem Server.
Mein Anmeldeskript lege ich lokal unter C:\Windows\system32\GroupPolicy\machine\scripts\startup\ ab und binde dies wie oben beschrieben per gpedit ein.
Das sollte es doch schon gewesen sein, oder nicht?
Auf dem Server läuft Windows 2000 Server.
Danke Dir für die Mühe.
mfg
Alforno
Weitere Tipps für Interessierte:
Tasks anzulegen geht neuerdings per GPO sehr einfach, wie schon von Softmeister später erwähnt. Die dazu benötigte GPP CSE (Group Policy Preferences Client Side extension, nur für xp/2003,2008 und Vista) kann ein WSUS netzwerkweit verteilen, kann aber auch wiederrum per Startskript installiert werden. Der Gag ist nun: zur Nutzung von GPPs benötigt man keinesfalls einen Server 2008, sondern es reicht ein 2000er oder 2003er DC ebenso. Die Einstellungen regelt man von einem Vista-PC (oder 2008 Member-Server) aus, der das Adminpak bzw. RSAT installiert hat. So haben wir das vor der Umstellung auf 2008 Server DCs gemacht und das ist auch offiziell von MS so vorgesehen.
Nebenbei: schtasks kann seit Vista auch xml-Dateien mit allen Feineinstellungen importieren.
Tasks anzulegen geht neuerdings per GPO sehr einfach, wie schon von Softmeister später erwähnt. Die dazu benötigte GPP CSE (Group Policy Preferences Client Side extension, nur für xp/2003,2008 und Vista) kann ein WSUS netzwerkweit verteilen, kann aber auch wiederrum per Startskript installiert werden. Der Gag ist nun: zur Nutzung von GPPs benötigt man keinesfalls einen Server 2008, sondern es reicht ein 2000er oder 2003er DC ebenso. Die Einstellungen regelt man von einem Vista-PC (oder 2008 Member-Server) aus, der das Adminpak bzw. RSAT installiert hat. So haben wir das vor der Umstellung auf 2008 Server DCs gemacht und das ist auch offiziell von MS so vorgesehen.
Nebenbei: schtasks kann seit Vista auch xml-Dateien mit allen Feineinstellungen importieren.