türkischlan 10 Geschrieben 9. Juni 2010 Melden Teilen Geschrieben 9. Juni 2010 Hallo zusammen, "ja ich habe die Suchfunktion angeschaut" aber nichts direktes gefunden. Zu meiner Frage: ich möchte in unserem Netzwerk alle Clients (200 Stück) über einen geplanten Task neu starten. Hierzu habe ich ein VBScript geschrieben das den User informiert das in den nächsten 4 Tagen der Rechner neu gestartet wird. hier das Script: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 'Instanz von Object erzugen set Netzwerk = wscript.createobject("wscript.Network") info = Info & "Achtung: Ihr Computer " & Netzwerk.computername & " wird in 4 Tagen neu gestartet." & vbcrlf info = info & "Bitte stellen Sie sicher, dass" & vbcrlf info = info & "alle Applikationen und nicht gespeicherte Dateien gespeichert sind und geschlossen werden." & vbcrlf info = info & "Nachricht erstellt am: " & time & ", " & date & vbcrlf 'Rechner neustarten msgbox info, vbinformation, "Information" '4 Tage dauer 'Wscript.sleep 345600000 ' 2 Stunden Wscript.sleep 7200000 strComputer = "." Set objwmi = GetObject("winmgmts:" _ & "{(Shutdown)}!\\" & strComputer) wql = "Select * from Win32_OperatingSystem" Set colOperatingSystems = objwmi.ExecQuery(wql) For Each objOperatingSystem In colOperatingSystems objOperatingSystem.Reboot Next +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Wenn ich mit Domain Userrechten starte: Im Anschluss habe ich über den command schtasks folgenden Befehl erstellt: schtasks /create /tn "reboot.client" /tr c:\maintenance\reboot.vbs /sc wöchtlich /mo 1 /st 18:00:00 /s %computername% /ru "System" /ru "System" Task mit System rechten zu starten Sobald ich den schtask ausführe bekomme ich folgende Meldung: Warnung: Der geplante Task "rebooten" wurde erstellt, aber er kann nicht ausgeführt werden, weil die Kontoinformationen nicht festgelegt werden konnten. Wenn ich den gleichen Befehl mit Admin rechten starte wird der Task ohne Fehler angelegt. Jedoch beim Starten des Tasks ist der Status als gestartet aber das Script mit der Meldung "reboot.vbs" kommt nicht?! Ich denke nach dem was ich so gelesen habe klappt das mit dem schtasks nicht so richtig.. Aber evtl. gibt es jemanden der es doch so macht. Ich möchte einfach einen Task erstellen lassen (Automatisch) wenn sich der Client oder der User in der Domain anmeldet... oder besser gesagt möchte ich die 200 Clients in der Woche einmal rebooten lassen. Evtl. gibt es ja andere Möglichkeiten. Ich danke Zitieren Link zu diesem Kommentar
NilsK 2.930 Geschrieben 9. Juni 2010 Melden Teilen Geschrieben 9. Juni 2010 Moin, einen Task als "System" erzeugen können aus gutem Grund nur Admins. Wobei ich nicht verstehe, wozu dein Task als System laufen muss. Einen Reboot können User auch ohne Adminrechte ausführen. Gruß, Nils Zitieren Link zu diesem Kommentar
türkischlan 10 Geschrieben 9. Juni 2010 Autor Melden Teilen Geschrieben 9. Juni 2010 Hi Nils, erst mal danke für deine Antwort. Nun ich habe den schtasks auch mit den Parametern /ru task /rp task genommen. Hier bekomme ich die meldung wenn ich diese als Domain User ausführe: Warnung: Der geplante Task "rebooten" wurde erstellt, aber er kann nicht ausgeführt werden, weil die Kontoinformationen nicht festgelegt werden konnten. Den User "task" mit Passwort "task" habe ich via VBS mittels GPO erstellt. Der User task ist in allen Gruppen auf der lokalen Maschine Mitglied. Eigentlich denke ich das es mit dem /ru -> runas laufen sollte was leider nicht klappt. Naja der Punkt ist eben das es nicht gewünscht ist den Usern zu sagen legt bitte einen Task an... Das sollte eben Automatisch gehen. Und vom rebooten mal ganz abgesehen.. ;-) das macht fast keiner... Danke Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 9. Juni 2010 Melden Teilen Geschrieben 9. Juni 2010 Mit den neuen GPPs gehts vermutlich einfacher: GPP - Group Policy Preferences - Gruppenrichtlinien Einstellungen Ziemlich weit unten ist ein Beispiel zu finden. Zitieren Link zu diesem Kommentar
türkischlan 10 Geschrieben 9. Juni 2010 Autor Melden Teilen Geschrieben 9. Juni 2010 Hi, danke für die Info. Das habe ich bereits durch genommen. Es ist richtig, ist echt nicht schlecht das GGP. Aaaber wenn ich auf einem Member Server 2008 Server eine GPO erstelle und einen Task auf Computer und oder Benutzerebene einrichte und diese mit einer OU Verknüpfe, wird diese bei einer Anmeldung via Domain User nicht erstellt!! Achtung: Wenn ich mich als Domain Admin oder als Domain User der in der lokalen Admingruppe ist anmelde geht diese!! D.h der Task was ich über GPO erstellt habe wird erstellt. Warum wird der Task nicht erstellt wenn ich mich mit einem Domain User anmelde... gruß Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 9. Juni 2010 Melden Teilen Geschrieben 9. Juni 2010 Es ist richtig, ist echt nicht schlecht das GGP. Aaaber wenn ich auf einem Member Server 2008 Server eine GPO erstelle und einen Task auf Computer und oder Benutzerebene einrichte und diese mit einer OU Verknüpfe, wird diese bei einer Anmeldung via Domain User nicht erstellt!! Wenn es Task im Benutzerkontext ist, dann muß die GPO natürlich im Verwaltungsbereich der Benutzer liegen. D.h. die verknüpfte OU muß natürlich Benutzerobjekte enthalten. Gruppen zählen nicht. Bei Computern müssen es natürlich Clients sein. Achtung: Wenn ich mich als Domain Admin oder als Domain User der in der lokalen Admingruppe ist anmelde geht diese!! D.h der Task was ich über GPO erstellt habe wird erstellt. OK, was spricht gegen einen Computertask? Warum wird der Task nicht erstellt wenn ich mich mit einem Domain User anmelde... Mangelnde Rechte? Was sagt das Ereignisprotokoll zu dem Fehlversuch? Zitieren Link zu diesem Kommentar
türkischlan 10 Geschrieben 9. Juni 2010 Autor Melden Teilen Geschrieben 9. Juni 2010 Wenn es Task im Benutzerkontext ist, dann muß die GPO natürlich im Verwaltungsbereich der Benutzer liegen. D.h. die verknüpfte OU muß natürlich Benutzerobjekte enthalten. Gruppen zählen nicht. Bei Computern müssen es natürlich Clients sein. Das ist richtig und wurde auch so gemacht. Du meinst über den GGP einen Task erstellen der im Punkt Computerkonfiguration eingerichtet ist?! Wenn ja, dass habe ich auch gemacht. Tja das ist der Punkte was ich evtl. denke es sein zu können. Aber warum kann ich wen ich als Domain User angemeldet bin dennoch einen Task manuell anlegen.. Wenn ich z.B über die cmd.exe eine at "Zeit" "Funktion was zu tuen soll" eingebe so kommt eine meldung Zugriff verweigert Ich denke mal das hier noch der Fehler liegt, warum ein Domain User kein task über at anlegen kann... gruß Zitieren Link zu diesem Kommentar
türkischlan 10 Geschrieben 9. Juni 2010 Autor Melden Teilen Geschrieben 9. Juni 2010 hmm ich habe da noch was gefunden, evtl. könnte es gesen sein mal schauen. gebe dann bescheid. Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 9. Juni 2010 Melden Teilen Geschrieben 9. Juni 2010 hmm ich habe da noch was gefunden, evtl. könnte es gesen sein mal schauen. gebe dann bescheid. Hoffentlich ist die Shifttaste auch bei den gefundenen Gegenständen. ;) Zitieren Link zu diesem Kommentar
türkischlan 10 Geschrieben 10. Juni 2010 Autor Melden Teilen Geschrieben 10. Juni 2010 sooo, nun einen Punkt konnte ich noch finden. Wenn ich über GPP einen Task erstelle was auf User ebene konfiguriert ist und diese GPP in eine OU Verknüpfe wo die User enthalten sind, klappt diese nur wenn der User Admin rechte hat (bei der Anmeldung). Wenn ich mit einem Domain User anmelde, so geht das erstellen des Tasks über GPP nicht! Aber wenn ich als User der Admin rechte hat mich anmelde und den erstellten Task unter Sicherheit so ändere das ich die Gruppe Domain User hinzufüge und denen Vollzugriff erteile, diese bei einer neu Anmeldung eines Domain Users mit Domain User rechten unter Geplante Tasks zu sehen ist!!! Somit würde nach dem o.g Workaround bei Anmeldung eines Domain Users der Task angezeigt und würde nach geplanter Zeit laufen. Aber das kann es doch echt nicht sein oder??!! Ich mein als erstes mit Admin anmelden -> Task wird über GPP erstellt danach die Sicherheitseinstellungen so ändern das Domain User "Vollzugriff" auf diesen Task haben und dann bei der nächsten Anmeldung angezeigt wird. Hmm...... da muss es doch andere Wege geben :suspect::suspect: naja bin mal auf die Resonanz gespannt Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 10. Juni 2010 Melden Teilen Geschrieben 10. Juni 2010 Wenn ich über GPP einen Task erstelle was auf User ebene konfiguriert ist und diese GPP in eine OU Verknüpfe wo die User enthalten sind, klappt diese nur wenn der User Admin rechte hat (bei der Anmeldung). Wenn ich mit einem Domain User anmelde, so geht das erstellen des Tasks über GPP nicht! Hmm, ich würde jetzt vermuten, dem gemeinen Domain User fehlen noch irgendwelche Berechtigungen, die man auch per GPO einstellen. Sicher weiß ich es aber nicht. Du könntest allerdings auch einen Account dafür im AD anlegen, und den dann eintragen: http://www.gruppenrichtlinien.de/Bilder/gpp_14.png Und im Reiter Gemeinsam den Haken setzen bei "Im Sicherheitskontext des angemeldeten Benutzers ausführen". Und die Zielgruppenadressierung gibt auch noch viele Möglichkeiten her. Zitieren Link zu diesem Kommentar
türkischlan 10 Geschrieben 10. Juni 2010 Autor Melden Teilen Geschrieben 10. Juni 2010 sodele, also nun habe ich DIE Lösung erstellt. Evtl. kommt es dem ein oder anderen etwas komplex, evtl. zu lang oder keine Ahnung.. Aber für mich ist es ok. also: 1) habe mir via VBScript "reboot.vbs" folgendes gebastelt und zusammen gestellt: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 'Instanz von Object erzugen was dem User eine Meldung ausgibt das der 'Rechner neu gestartet wird. set Netzwerk = wscript.createobject("wscript.Network") info = Info & "Achtung: Ihr Computer " & Netzwerk.computername & " wird in 1,2 sekunden neu gestartet." & vbcrlf info = info & "Bitte stellen Sie sicher," & vbcrlf info = info & "dass alle Applikationen und nicht gespeicherte Dateien gespeichert sind und geschlossen werden." & vbcrlf info = info & "Nachricht erstellt am: " & time & ", " & date & vbcrlf 'Rechner neustarten '4 Tage dauer 'Wscript.sleep 345600000 ' 1,2 sek Wscript.sleep 1200 strComputer = "77" Set objwmi = GetObject("winmgmts:" _ & "{(Shutdown)}!\\" & strComputer) wql = "Select * from Win32_OperatingSystem" Set colOperatingSystems = objwmi.ExecQuery(wql) For Each objOperatingSystem In colOperatingSystems objOperatingSystem.Reboot Next msgbox info, vbinformation, "Information" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2) erstelle ich mir eine kleine Batchdatei (create.Task.2.client.cmd mit einer if else Funktion damit der Task nicht immer erstellt wird. Und dann erstellt wenn er mal nicht existiert..: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if exist C:\WINDOWS\Tasks\At1.job goto ist_vorhanden :ist_nicht_vorhanden at 18:00:00 /interactive /every:MO,MI,FR,SA,SO C:\maintenance\reboot.vbs # Hier wird der Taskdatei At1.job die Sicherheitsrechte so geändert das Jeder #Vollzugriff hat. Nur dann können die normalen Domain User den Task nach #der anmeldung sehen und nutzen!! ECHO J| CACLS C:\WINDOWS\Tasks\At*.job /g jeder:F :ist_vorhanden :ende ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3) erstelle ich mir eine weitere VBScript Datei (copy.reboot.script.vbs, die mir die reboot.vbs (siehe Schritt 1) vom Server auf die lokale Maschine kopiert. (C:\) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ on error resume next 'Kopieren der Datei vom Server auf die lokale HDD strFolder = "\\servername\freigabe\ordner01" strKopie = "C:\" Set objfs = CreateObject("Scripting.FileSystemObject") objfs.CopyFolder strFolder, strKopie, true ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ so nun erstelle ich in der ad (muss nicht wer will) eine OU. In diese OU erstelle ich 2 GPOs. 1) GPO Computerkonfiguriert was beim starten des Rechners das VBScript copy.reboot.script.vbs ausführt -> kopiert den Ordner mit der reboot.vbs auf die lokale Festplatte (siehe Schritt 3) 2) Dann erstelle ich eine weitere GPO Computerkonfiguriert was beim starten des Rechners das VBScript create.Task.2.client.cmd ausführt. D.h hier wird ein TASK erstellt (At1.job) Somit hat es folgende Funktion: Wenn sich ein Rechner in der AD anmeldet mit dem Rechneraccount, so wird das reboot.vbs vom Server aus lokal kopiert und im Anschluss über die Batchdatei ein Task erstellt was den PC jeden MO,MI,FR,SA,SO mit Meldung ab wann der Rechner neu gestartet wird Informiert. Die Lösung mit GPP ist wenn es nach mit ginge das non plus Ultra. Aber wenn ich in der GPP einen Task erstelle und ihn in der AD Verknüpfe, diese nicht erstellt wird wenn sich ein Domain User anmeldet... Aber ich denke das es hiermit den Sicherheitsberechtigungen handelt. Naja evtl. bringt ja die Lösung dem ein oder anderen etwas. güle güle (gruß) tl Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.