Jump to content
Sign in to follow this  
BlackArchon

DLL bei Systemstart registrieren

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
"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

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...