mr-hanky
Goto Top

Abmeldeskript läuft bei Windows XP nicht komplett durch

Moin,

arbeite momentan an einer kleinen Schwierigkeit und bräuchte ein paar kreative ideen:

nach unseren IT-Sicherheitsrichtlinien sind an allen PC's die USB-Ports für Massenspeicher (USB-Sticks) geschlossen. Diese werden mit den Einstellungen einfach nicht erkannt; Drucker, Mäuse, Tastaturen, etc können trotzdem über USB genutzt werden.
Nun gibt es einige wenige Nutzer denen (via Ausnahmeregel) die Nutzung von USB-Massenspeichern erlaubt ist. Momentan sieht die Umsetzung so aus, dass bei diesen Nutzern die Ports freigeschalten werden. Das gilt dann aber für den ganzen Rechner, also auch für dritte Nutzer, die einen Windows-Zugang aber keine Freigabe für USB-Massenspeicher haben.
Dieses Problem möchte ich lösen, indem ich bei der Anmeldung der berechtigten Nutzer ein Anmeldeskript ausführe, dass in der Registry die entsprechenden Werte setzt und beim Abmelden über ein extra Abmeldeskript diese Einstellungen wieder zurück gesetzt werden (USB-Massenspeicher werden verweigert).
Meine Lösung sieht so aus:
1. Bei Nutzeranmeldung wird Anmeldeskript gestartet (.vbs)
2. Anmeldeskript startet über Skriptparameter ein weiteres Skript mit Administratorrechten (ebenfalls .vbs)
3. das zweite Skript schreibt via regedit.exe eine .reg-Datei silent in die Registry.

Das selbe auch zum Abmelden. Das ganze funktioniert wunderbar. Der Nutzer braucht keine erweiterten Rechte um Änderungen in der Registry durchzuführen. Sollte ein Nutzer den versteckten Pfad ($-Freigabe) "durchstöbern" und die Skripte finden, kann er dennoch nicht den Admin-Nutzer und das Passwort heraus bekommen, weil diese via Skriptparameter in der entsprechenden GPO übergeben werden (also innerhalb das AD).

Problem ist nun folgendes:
Bei der Abmeldung läuft der selbe Vorgang ab (nur das hier die Freigabe für USB-Massenspeicher wieder zurück gesetzt wird). Das Skript startet während des Abmeldevorgangs. Erkennbar daran, dass sich eine DOS-Konsole öffnet. Dennoch sind die USB-Ports nach erfolgreichem Logout für USB-Massenspeicher immer noch geöffnet.

Meine Vermutung ist, dass Windows seine Systemdienste teilweise schon beendet hat, bevor das Skript komplett ausgeführt wurde.

Was meint ihr? Kann man im AD ähnlich wie bei der Systemanmeldung auch bei der Abmeldung einstellen, dass erst alle Skripts komplett durchgelaufen sein müssen, bevor die Nutzerabmeldung abgeschlossen wird?

Systeminfos:
Windows Server 2003 Enterprise (AD-Server)
Windows XP Professional SP3 (Clients)
$-Freigabe kann von allen Nutzern gelesen werden
REG-Eintrag für USB-Massenspeicher OFFEN: \HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Service\USBSTOR\ -> Start 3, Type 1
REG-Eintrag für USB-Massenspeicher GESCHLOSSEN: \HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Service\USBSTOR\ -> Start 4, Type 4


Danke im Vorraus für eure Ideen...

greetz daniel

Content-Key: 180573

Url: https://administrator.de/contentid/180573

Printed on: April 25, 2024 at 14:04 o'clock

Member: Skyemugen
Skyemugen Feb 15, 2012 at 12:19:00 (UTC)
Goto Top
Aloha,

hast du es auch schon einmal versucht, das CurrentControlSet statt dem ControlSet001 zu nutzen?

greetz André
Member: bastla
bastla Feb 15, 2012 at 12:26:31 (UTC)
Goto Top
... und abgesehen davon ist VBS durchaus in der Lage, selbst in die Registry zu schreiben, sodass zumindest Schritt 3 entfallen könnte ...

Grüße
bastla
Member: mr-hanky
mr-hanky Feb 15, 2012 at 12:54:13 (UTC)
Goto Top
hast du es auch schon einmal versucht, das CurrentControlSet statt dem ControlSet001 zu nutzen?

Wäre eine Möglichkeit. Aber wenn ein Nutzer nicht das Recht hat, in die Registry zu schreiben, dann gibt es keinen Unterschied, wo ich die Werte manipuliere.

... und abgesehen davon ist VBS durchaus in der Lage, selbst
in die Registry zu schreiben, sodass zumindest Schritt 3
entfallen könnte ...

Ich hab mich Schritt für Schritt der Lösung genähert und deswegen denn extra/überflüssigen Schritt. Wenn die Einstellungen problemlos funktionieren würden, dann wäre eine Zusammenfassung eine gute Idee.


Kleine Aktualisierung:
Habe den dritten Schritt mit der .reg-Datei raus genommen. Jetzt wird über das erste Script ein zweites VB-Script als Administrator gestartet, dass die Änderungen in der Registry vornimmt. Zusätzlich habe ich die beiden VB-Scripts zum Freigeben und Schliessen der USB-Ports für Massenspeicher um ein paar Zeilen erweitert, so das diese einen Eintrag in eine Log-Datei ausführen, wenn die druchgelaufen sind oder aber einen entsprechenden Fehlercode ausgeben, sollte es zu einem kommen.
Beim Anmelden laufen beide Scripte (das eine zum Freigeben von USB-Massenspeicher ODER das zum Sperren von USB-Massenspeicher) fehlerfrei durch und erzeugen den Log-Eintrag. Beim Abmelden wird ger kein Log-Eintrag erstellt, obwohl das Script zum Starten als Administrator geladen wird.

Ergo: Wenn das erste VB-Script gestartet wird und eines der beiden folgenden mit Administrator-Rechten lädt, werden beide scheinbar vor der kompletten Ausführung beendet.
Member: DerWoWusste
DerWoWusste Feb 19, 2012 at 23:05:19 (UTC)
Goto Top
Moin.
http://diaryproducts.net/about/operating_systems/windows/disable_usb_st ... sollte auf alles eingehen. Dort wird auch mit net stop usbstor gearbeitet, was Dir vermutlich fehlt.
Member: mr-hanky
mr-hanky Feb 21, 2012 at 08:52:27 (UTC)
Goto Top
sehr gute anleitung.

leider ist das für unsere umgebung eine eher alternative lösung, da ich meinen nutzern zusätzliche Schritte möglichst ersparen will.
Member: DerWoWusste
DerWoWusste Feb 21, 2012 at 09:52:54 (UTC)
Goto Top
Hast Du denn verstanden, was ich meine mit "net stop usbstor gearbeitet, was Dir vermutlich fehlt."? Das musst Du einbauen. Du änderst bislang nur die Startart des Dienstes, stoppst ihn aber nicht.