BlackArchon 10 Geschrieben 15. Dezember 2011 Melden Geschrieben 15. Dezember 2011 Ausgangssituation: Ein Windows 2003 Server R2 SBS mit einem AD, dazu ein paar Windows XP und Win7-Clients. Die Benutzer melden sich an ihren Clients an die Domäne an. Ich möchte sicherstellen, dass bei jedem Rechnerstart der Clients eine bestimmte DLL registriert ist, die ich über das Netzwerk (auf einer Freigabe des Servers) bereitstelle. Da normale Benutzer auch nur Benutzerrechte (und keine Adminrechte) haben, kann ich also nicht einfach per Anmeldeskript (unter AD-Benutzer und -Computer, zur OU der Nutzer gehen, Eigenschaften, Profil) mir diese DLL vom Netz kopieren und einen regsvr32-Aufruf ausführen. Also war mein nächster Gedanke, dies per Gruppenrichtlinie zu erledigen. Dazu habe ich beim Gruppenrichtlinienobjekteditor ein neues Objekt erstellt und bei Computerkonfiguration, Windows-Einstellungen, Skripts (Start/Herunterfahren), Starten ein Skript hinterlegt, welches sich die DLL in %USERPROFILE% kopiert und dann regsvr32 ausführt. Leider scheint dieses Skript völlig ignoriert zu werden. Zum Test habe ich in diesem Skript die aktuelle Uhrzeit in eine Datei schreiben lassen - diese Datei wird jedoch nie angelegt. Daraus schließe ich, dass eben das Skript gar nicht ausgeführt wird. Was könnte ich noch übersehen haben? Ich bin für jeden Vorschlag dankbar. Zitieren
srv2008 10 Geschrieben 16. Dezember 2011 Melden Geschrieben 16. Dezember 2011 Ausgangssituation: Ein Windows 2003 Server R2 SBS mit einem AD, dazu ein paar Windows XP und Win7-Clients. Die Benutzer melden sich an ihren Clients an die Domäne an. Ich möchte sicherstellen, dass bei jedem Rechnerstart der Clients eine bestimmte DLL registriert ist, die ich über das Netzwerk (auf einer Freigabe des Servers) bereitstelle. Da normale Benutzer auch nur Benutzerrechte (und keine Adminrechte) haben, kann ich also nicht einfach per Anmeldeskript (unter AD-Benutzer und -Computer, zur OU der Nutzer gehen, Eigenschaften, Profil) mir diese DLL vom Netz kopieren und einen regsvr32-Aufruf ausführen. Also war mein nächster Gedanke, dies per Gruppenrichtlinie zu erledigen. Dazu habe ich beim Gruppenrichtlinienobjekteditor ein neues Objekt erstellt und bei Computerkonfiguration, Windows-Einstellungen, Skripts (Start/Herunterfahren), Starten ein Skript hinterlegt, welches sich die DLL in %USERPROFILE% kopiert und dann regsvr32 ausführt. Leider scheint dieses Skript völlig ignoriert zu werden. Zum Test habe ich in diesem Skript die aktuelle Uhrzeit in eine Datei schreiben lassen - diese Datei wird jedoch nie angelegt. Daraus schließe ich, dass eben das Skript gar nicht ausgeführt wird. Was könnte ich noch übersehen haben? Ich bin für jeden Vorschlag dankbar. Was sagt EventLog bezüglich der Richtlinie? gpupdate /force auf dem Client ausführen - wie ist das Resultat? Gruss Zitieren
Leuchtkondom 17 Geschrieben 16. Dezember 2011 Melden Geschrieben 16. Dezember 2011 Hallo, das kann auch nicht funktionieren was du da machst. Du willst eine Datei in %userprofile% kopieren, allerdings ist zu diesem Zeitpunkt (weil du es in der Computereinstellung als Skript gemacht hast) ja noch gar kein Benutzer angemeldet. Warum soll die DLL eigentlich ins %userprofile% und nicht unter system32? Lass Sie doch mal dort hin kopieren testweise mit dem Skript, das geht bestimmt. Ach und noch etwas: Was gibst du als Quelle zum Kopieren an? Zitieren
BlackArchon 10 Geschrieben 16. Dezember 2011 Autor Melden Geschrieben 16. Dezember 2011 Hm, also ich habe auch gerade neue Erkenntnisse gewonnen. Ich habe erstmal mit dem Anmeldeskript für einen Nutzer im AD (unter Eigenschaften, Profil) weiter getestet. Aktuell sieht das so aus: @echo on echo %time% >> c:\test1\testfile.log copy /Y "\\server\projecte\10053_Makro\AddIns\Bibliothek\dsofile.dll" C:\test1\ if %ERRORLEVEL% NEQ 0 GOTO ERROR1 regsvr32 /s c:\test1\dsofile.dll if %ERRORLEVEL% NEQ 0 GOTO ERROR2 GOTO END :ERROR1 echo ### Fehler (1) beim Kopieren der DLL! ### pause GOTO END :ERROR2 echo ### Fehler (2) beim Registrieren der DLL! ### pause :END Dies führt zum errorlevel 5 bei der Ausführung von regsvr32, was auf nicht ausreichende Rechte hinweist. Ich kann jetzt nochmal probieren, die DLL direkt in %windir%\system32 zu kopieren und dort zu registrieren. Mal schauen, aber ich denke nicht, dass sich da was ändert. Ok, erwartungsgemäß konnte ich da nicht mal die DLL kopieren, wegen 'Zugriff verweigert'. Hm, offenbar bin ich die ganze Zeit fälschlicherweise davon ausgegangen, dass das Anmeldeskript mit Adminrechten läuft und nicht mit Benutzerrechten. Zitieren
BlackArchon 10 Geschrieben 19. Dezember 2011 Autor Melden Geschrieben 19. Dezember 2011 Ich habe mir jetzt dieses Kapitel zu den Anmeldeskripts des Buches "Integrationshandbuch Microsoft-Netzwerk" durchgelesen. Muss man also wirklich über so ein Tool wie runas oder psexec (aus der Sysinternals Suite) gehen, wenn man eine DLL per Anmeldeskript registrieren möchte? Oder gibt es noch eine andere Möglichkeit? Zitieren
srv2008 10 Geschrieben 21. Dezember 2011 Melden Geschrieben 21. Dezember 2011 Ich habe mir jetzt dieses Kapitel zu den Anmeldeskripts des Buches "Integrationshandbuch Microsoft-Netzwerk" durchgelesen. Muss man also wirklich über so ein Tool wie runas oder psexec (aus der Sysinternals Suite) gehen, wenn man eine DLL per Anmeldeskript registrieren möchte? Oder gibt es noch eine andere Möglichkeit? Einen Dienst schreiben, welcher mit Admin Rechten läuft und bei jedem TS Server für den User eine DLL reggt... klingt mir nach einer sauberen Lösung anstatt von runas / psexec. Zitieren
BlackArchon 10 Geschrieben 5. Januar 2012 Autor Melden Geschrieben 5. Januar 2012 Hm, hast du da zufällig einen heißen Tipp für ein kleines Tutorial zur Erstellung eines solchen Dienstes? Zitieren
Sunny61 823 Geschrieben 5. Januar 2012 Melden Geschrieben 5. Januar 2012 Muß es unbedingt bei der Anmeldung des Benutzers sein? Wenn ja, dann könntest Du es auch mit einem geplanten Task machen. Der Task kopiert und registriert die DLL, allerdings nicht als der Benutzer sondern als System. Dazu muß allerdings auf der Freigabe, in der die DLL liegt auch das System Leserechte haben. Die Authentifizierten Benutzer mit Leserechten hinzufügen sollte ausreichen. Diesen Task kannst Du mit Hilfe der Group Policy Preferences auf den Clients ausrollen. Du kannst natürlich auch einen anderen Benutzer als den SYSTEM verwenden, der Benutzer muß genügen Berechtigungen haben und im Task aus ausführender Benutzer eingetragen sein. Wenn es allerdings als Computerstartupscript ausreicht, dann kopier die DLL in das System32 Verzeichnis und registrier sie in einem Zug. Zitieren
BlackArchon 10 Geschrieben 9. Januar 2012 Autor Melden Geschrieben 9. Januar 2012 Hm, wenn ich das jetzt recht lese, dann wird das doch noch gar nicht unter Windows 2003 Server unterstützt? Zitieren
NorbertFe 2.199 Geschrieben 9. Januar 2012 Melden Geschrieben 9. Januar 2012 Hm, wenn ich das jetzt recht lese, dann wird das doch noch gar nicht unter Windows 2003 Server unterstützt? Was genau jetzt? Bye Norbert Zitieren
BlackArchon 10 Geschrieben 13. Januar 2012 Autor Melden Geschrieben 13. Januar 2012 "Group Policy Preferences" - unter Download: Group Policy Preferences Overview - Microsoft Download Center - Download Details steht, dass das ein neues Feature von Windows Server 2008 wäre. Ich habe aber hier einen Windows Server 2003 SBS-Rechner. Zitieren
Sunny61 823 Geschrieben 16. Januar 2012 Melden Geschrieben 16. Januar 2012 "Group Policy Preferences" - unter Download: Group Policy Preferences Overview - Microsoft Download Center - Download Details steht, dass das ein neues Feature von Windows Server 2008 wäre. Ich habe aber hier einen Windows Server 2003 SBS-Rechner. Die Preferences funktionieren auch auf einem W2003 nach Installation von KB943729: CSE, GPP, RSAT - Remote Server Admistration Tool und die neue GPMC GPP - Group Policy Preferences - Gruppenrichtlinien Einstellungen Zitieren
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.