Starten eines Batchfiles per GPO im Computercontext
Hallo!
Wegen eines Umzugs unseres Symantec Servers müssen wir eine XML-datei auf den Windows 10 Clients durch eine neue ersetzen. Per GPO wäre das theoretisch am einfachsten durch den Update der Datei - da diese aber durch den laufenden Service geschützt wird, ist das nicht möglich.
Symantec bietet zu diesem Zweck ein Programm an - nennt sich sylinkdrop.exe. Mit einem Batchfile das so aussieht:
echo Start Replace > C:\Temp\Sylink.log
\\domaincontroller\netlogon\SylinkDrop.exe -silent \\domaincontroller\netlogon\Sylink.xml
echo End Replace >> C:\Temp\Sylink.log
funktioniert das als lokal angemeldeter Administrator wunderbar und erstellt auch ein kurzes Logfile auf dem jeweiligen Client.
Nun das Problem:
Ich habe dann eine Policy erstellt, die im Computercontext (da Admin-Berechtigung erforderlich ist) dieses Batchfile ausführen soll und diese mit dem Container, in dem die entsprechenden PCs (in weiteren Subcontainern) drin sind verknüpft. Das Batchfile liegt in dem Startup-Verzeichnis der Policy, das auszuführende Programm und die zugehörige XML-Datei liegen in \\domaincontroller\netlogon. Beim Neustart eines Rechners wird jedoch leider nichts ausgeführt. Es wird weder das Logfile angelegt noch die .exe angestartet. Im Windows Log erscheint keinerlei Fehlermeldung. Ich habe ehrlich gesagt keine Ahnung, wie nachzuvollziehen ist, was für ein Problem existiert. Vielleicht kannmir jemand helfend unter die Arme greifen?
Danke und viele Grüße!
Wegen eines Umzugs unseres Symantec Servers müssen wir eine XML-datei auf den Windows 10 Clients durch eine neue ersetzen. Per GPO wäre das theoretisch am einfachsten durch den Update der Datei - da diese aber durch den laufenden Service geschützt wird, ist das nicht möglich.
Symantec bietet zu diesem Zweck ein Programm an - nennt sich sylinkdrop.exe. Mit einem Batchfile das so aussieht:
echo Start Replace > C:\Temp\Sylink.log
\\domaincontroller\netlogon\SylinkDrop.exe -silent \\domaincontroller\netlogon\Sylink.xml
echo End Replace >> C:\Temp\Sylink.log
funktioniert das als lokal angemeldeter Administrator wunderbar und erstellt auch ein kurzes Logfile auf dem jeweiligen Client.
Nun das Problem:
Ich habe dann eine Policy erstellt, die im Computercontext (da Admin-Berechtigung erforderlich ist) dieses Batchfile ausführen soll und diese mit dem Container, in dem die entsprechenden PCs (in weiteren Subcontainern) drin sind verknüpft. Das Batchfile liegt in dem Startup-Verzeichnis der Policy, das auszuführende Programm und die zugehörige XML-Datei liegen in \\domaincontroller\netlogon. Beim Neustart eines Rechners wird jedoch leider nichts ausgeführt. Es wird weder das Logfile angelegt noch die .exe angestartet. Im Windows Log erscheint keinerlei Fehlermeldung. Ich habe ehrlich gesagt keine Ahnung, wie nachzuvollziehen ist, was für ein Problem existiert. Vielleicht kannmir jemand helfend unter die Arme greifen?
Danke und viele Grüße!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 666052
Url: https://administrator.de/contentid/666052
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
15 Kommentare
Neuester Kommentar
Zitat von @norden:
es scheitert gerne mal daran, dass Domänen-Computer keine Berechtigung auf das Scriptverzeichnis haben. Hast du das schon geprüft?
Im Netlogon haben aber standardmäßig auch die Computer Lese-Recht.es scheitert gerne mal daran, dass Domänen-Computer keine Berechtigung auf das Scriptverzeichnis haben. Hast du das schon geprüft?
Zitat von @BernhardB:
\\domaincontroller\netlogon\SylinkDrop.exe -silent \\domaincontroller\netlogon\Sylink.xml
Wenn, dann solltest Du stattdessen besser\\domaincontroller\netlogon\SylinkDrop.exe -silent \\domaincontroller\netlogon\Sylink.xml
\\domain.tld\netlogon\SylinkDrop.exe
Hat aber auch nichts geändert.
Somit ist Dein Problem NICHT gelöst, aber dennoch hast Du es als gelöst markiert (?)Zum Hintergrund lies bitte meinen Artikel https://www.experts-exchange.com/articles/25279/Overcoming-software-depl ...
Eine mögliche Lösung, die ich empfehlen würde sind "immediate Tasks", ich beschreibe deren Erstellung hier im Zuge eines anderen Artikels: https://www.experts-exchange.com/articles/35931/About-the-risks-of-execu ...
Deine Frage ist mir bewusst und das Beschriebene ist die Ursache: fast startup. Mit fast startup werden keine GPOs mehr beim Rechnerstart verarbeitet, sofern man keinen echten Neustart durchführt. Wie man das umgeht steht auch im Artikel. Also von Herumschleichen kann nicht die Rede sein. Die bessere Lösung ist jedoch der Immediate Task, da dieser keinen Neustart braucht.
Hab ich doch im Artikel beschrieben Ein "echter" Neustart wird ausgeführt, wenn man auf "Neustart" klickt. Das ist eben etwas anderes als Herunterfahren und wieder einschalten. Möglicherweise machst Du ja echte Neustarts und es geht dennoch nicht - dann wäre die wahrscheinlichste Ursache, dass deine Netzwerkkarte nicht rechtzeitig bereit ist, also der Rechner "zu schnell" hochfährt, was bei SSD-Festplatten ja nicht selten zu beobachten ist. Dann solltest Du die GPO https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policie ... setzen (auf 20 Sekunden), die GPO am PC per GPupdate übernehmen und den PC neu starten.
Zitat von @BernhardB:
Jetzt komme ich ein wenig an meine Grenzen. Was ist Gruppenrichtlinienmodellierung was wie sieht man die Grupperichtlienienergebnisse an?
Und: Was heißt dass die Policy auf den Client passt?
Das Problem ist zwar schon gelöst, aber ich erläutere das trotzdem gerne.Jetzt komme ich ein wenig an meine Grenzen. Was ist Gruppenrichtlinienmodellierung was wie sieht man die Grupperichtlienienergebnisse an?
Und: Was heißt dass die Policy auf den Client passt?
Policy passend zum Client meint, dass erstens die Policy der OU zugeordnet ist, in der der Client steckt. Zweitens muss die Policy, da sie ja Richtlinien im Computerkontext enthält, auch eben solchen (Computern) zugeordnet sein und nicht für eine OU gelten, in der Benutzer stecken. Klingt trivial, ist aber ein gerne genommener Flüchtigkeitsfehler. Drittens ist ggf. die Zielgruppe durch die Sicherheitsfilterung eingeschränkt. Hier muss der Filter auf den Client zutreffen. Verändert man daran nichts, gilt es allerdings immer für alle.
Das alles lässt sich gut mit der Gruppenrichtlinienmodellierung überprüfen. Nachdem man einige Angaben gemacht hat, wird eine Simulation gefahren und anschließend bekommst du eine Auflistung über alle Policies, die zu den gemachten Angaben passen. So kannst du sehen, ob die Policy tatsächlich für einen bestimmten Client oder User in einer bestimmten OU gilt.
Grau ist alle Theorie, denn auf dem Weg zum Client können noch einige Dinge schief laufen, wie du selbst erfahren hast. Deshalb gibt es die Gruppenrichtlinienergebnisse, mit denen der Client direkt abgefragt wird, welche Policies er anwenden wird. Alternativ kannst du auf dem Client auch gpresult auf der Kommandozeile nutzen. Am DC geht es aber zentral natürlich bequemer.
Beide Tools sind Bestandteil der Gruppenrichtlinienverwaltung. Scroll links im Baum mal ganz runter, da siehst du die beiden Kollegen.
Mehr Infos mit Bildern gibt es zum Beispiel bei tecchannel.de