Bents Blog

 

Ein IT Blog mit Themen aus dem Windows Server Umfeld.

VBS Skripte für eine Windows Server 2003 Domäne

Vor dem Wochenende möchte ich Euch heute meine VBS-Skripte (Visual Basic Script) für die automatischen Einstellungen bzw. Verteilung von Dateien in reinen Windows Server 2003 Domänen präsentieren. Ich hatte ja in meinem Beitrag zu meinen Einstellungen für die Gruppenrichtlinenerweiterungen für Windows Server 2008 beschrieben, welche Möglichkeiten diese bieten und meine spezifische Konfiguration zum Download angeboten.

Leider besitzen noch sehr viele Kunden reine Windows Server 2003 Domänen, in denen diese neuen Funktionen nicht zur Verfügung stehen. Da ich aber ein Liebhaber von möglichst effektiven, automatisierten Lösungen bin, habe ich ein wenig Zeit investiert und die wichtigsten Einstellungen (der für mich relevanten Systemanpassungen) in die Tat umgesetzt. In diesem Beitrag werde ich nun beschreiben, welche Dinge benötigt werden und was selbige bewirken.

Voraussetzung

Für meine folgenden Konfigurationsbeispiele werden zunächst 2 Gruppenrichtlinien (GPO) benötigt, eine für die Einstellung im Computer-abhängigen Teil und eine zweite für die Gruppe der Benutzer (Administratoren). Alle Skripte auf die ich im Folgenden via Download-Link verweise, sollten in eine neuen Ordner kopiert werden:

\\FQDN\Netlogon\Skripte\

Die erste Richtlinie habe ich Servereinstellungen (Computer) genannt, mit der Domäne verknüpft und in der Sicherheitsfilterung die Sicherheitsgruppen Domänencontroller und Domänenserver hinzugefügt. Die Gruppe Domänenserver habe ich selbst erstellt (deren Inhalt ist selbsterklärend) – natürlich kann auch die Gruppe Domänencomputer genutzt werden, allerdings gilt dann die Einstellung der GPO auch für alle Clientcomputer.

Der Inhalt dieser Richtlinie beinhaltet gerade eine einzige Einstellung, nämlich den Aufruf meines ersten Skriptes Temp-System.vbs:

Das VBS Skript wird beim Start des betreffenden Systems (also vor der Anmeldung) ausgeführt und erstellt den (für mich wichtigen) Ordner:

%SystemDrive%\Temp

Gleichzeitig wird in der Registry unter dem Schlüssel die Einträge TEMP und TMP aktualisiert:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\
“TEMP”=REG_SZ:%SystemDrive%\Temp
“TMP”=REG_SZ:%SystemDrive%\Temp

Dadurch speichert das System seine temporären Dateien nicht mehr unter %SystemRoot%\Temp sondern unter dem obigen Ordner. Eine zentrale Stelle – dazu später mehr. Wichtig: Diese Einstellung ist Voraussetzung für die Temp-Einstellungen in der folgenden Benutzer-abhängigen Gruppenrichtlinie.

Die Gruppenrichtlinie für die Benutzer-abhängigen Einstellungen habe ich Domänen-Administratoren genannt, da alle Einstellungen nur für die Mitglieder angewendet und die normalen Domänen-Benutzer möglichst nicht beeinflusst werden sollen. Die GPO ist ebenfalls mit der Domäne verknüpft und wurde in der Sicherheitsfilterung mit der Gruppe der Domänen-Admins verbunden. Die Einstellungen der GPO können dem folgenden Bild entnommen werden:

Alle Einstellungen außerhalb der Skripte sind im Standard enthalten, auf die ich deswegen hier nicht weiter eingehe – mit Ausnahme des ADM-Templates von gruppenrichtlinien.de – diese sind hier aber vollständig dokumentiert und sehr gut erklärt.

Wichtig: Bevor ich auf die einzelnen Skripte näher eingehe, sei noch eine wichtige Einstellung erwähnt, ohne die die Skripte nicht vollständig funktionieren:

Diese Einstellung wird unter Benutzerkonfiguration, Administrative Vorlagen, System, Skripts vorgenommen und bewirkt, dass (nach der Anmeldung, aber) vor der Erstellung des Desktops und der Ausführung des Windows Explorer-Schnittstellenprogramms erst auf die vollständige Abarbeitung der Skripte gewartet wird.

Doch nun zum zweiten Skript, dem Procexp.zip. Das VBS Skript kopiert die Datei procexp.exe (als den Process Explorer von Sysinternals) von dem zentralen Speicherort innerhalb des Netlogon-Ordners nach %SystemRoot%. In meine Fall (und so in Zeile 15 im procexp.vbs konfiguriert) also von:

\\FQDN\Netlogon\Tools\procexp.exe

Danach wird im Autostart-Ordner des aktuellen Benutzers einen neue Verknüpfung (ProcessExplorer.lnk) erzeugt, welche folgenden Programmaufruf beinhaltet:

%SystemRoot%\procexp.exe /t

So wird der Process Explorer bei der Anmeldung in der Symbolleiste minimiert gestartet. Der nächste Auruf ist kein eigenes Skript sondern der Aufruf von Bginfo (ebenfalls von Sysinternals) mit den Parametern meines eigenen Templates.

Das dritte Skript Admin-CMD.zip erstellt im Benutzer-Abschnitt der Registry alle nötigen Einträge die die Anpassung der Kommandozeilenbox (cmd.exe) betreffen. Folgende Einstellungen werden vorgenommen:

  • QuickEdit Modus eingeschaltet
  • Lucidia Console als Schriftart eingestellt
  • Startverzeichnis C:\ (theoretisch könnte man hier auch %SystemDrive% verwenden, Zeile 17)
  • Fenstergröße 120 x 50, Puffer 120 x 500
  • „Tabulieren“ aktiviert

Außerdem wird im unter HKCU\Environment noch die Variable devmgr_show_nonpresent_devices auf 1 gesetzt, um beim Aufruf des Gerätemanagers (und der Option „Ausgeblendete Geräte anzeigen„) auch nicht mehr aktive, aber noch registrierte Geräte anzeigen (und diese ggf. entfernen) zu lassen.

Das vierte Skript Temp-User.zip setzt auf der Einstellung der GPO Servereinstellungen auf. In dem bereits erstellten Ordner %SystemDrive%\Temp wird ein Unterordner %Username% erstellt und in der Registry die folgenden Werte geändert:

HKCU\Environment
“TEMP”=REG_SZ:%SystemDrive%\Temp\%Username%
“TMP”=REG_SZ:%SystemDrive%\Temp\%Username%

Dadurch werden alle temporären Dateien eines Benutzers in einen eigenen Unterordner des neuen „zentralen“ Temp-Ordners erstellt. Aufräumen leicht gemacht.

Das letzte Skript Quick-Launch-Admin.zip hat es noch einmal in sich. Es enthält 2 Dateien, desktop.scf und quicklaunch-admin.vbs. Beide Dateien bitte in das oben erwähnte Verzeichnis (\\FQDN\Netlogon\Skripte) kopieren, dann muss auch keine Änderung vorgenommen werden. Das Skript erstellt in der Quick Launch Leiste des aktuellen Benutzers folgende Verknüpfungen:

  • Desktop anzeigen: %SystemRoot%\desktop.scf (kopiert von \\FQDN\Netlogon\Skripte)
  • Windows Explorer: %SystemRoot%\explorer.exe /e, /select, c: (Anzeige des Systems, C: aktiv)
  • Kommandozeile: %SystemRoot%\System32\cmd.exe (Einstellungen via Admin-CMD.vbs)
  • Internet Explorer: %ProgramFiles%\Internet Explorer\iexplore.exe
  • Computerverwaltung: %SystemRoot%\system32\compmgmt.msc /s (ein wichtiger Quick-Link)
  • Logoff: %SystemRoot%\System32\logoff.exe

Das Ergebnis sieht danach so aus:

Alle Skripte dokumentieren sowohl ihre erfolgreiche Ausführung als auch einen auftretenden Fehler im Anwendungsereignis-Protokoll des entsprechenden Systems. Wer mag, kann die Skripte gern ändern bzw. seinen eigenen Bedürfnissen anpassen, über Verbesserungsvorschläge würde ich mich freuen!

Update

Unter Windows Server 2008 R2 und Windows 7 gibt es keine Schnellstart-Leiste mehr. Dafür kann mein VBS-Skript aus dem Artikel Windows 7 und Server 2008 R2: Verknüpfungen an die Taskleiste anheften per Gruppenrichtlinie verwendet werden.

Wie bei allen meinen Beiträgen gilt: Bei Tipps, Vorschlägen sowie Fragen oder Kritiken hinterlasst bitte einen Kommentar. Viel Spaß mit meinen „Gruppenrichtlinien-Erweiterungen“ für Windows Server 2003.

Einen Blog am Leben zu erhalten kostet Zeit und Geld. Da ich auf meiner Seite weder Werbung einbinde, noch andersweitige Zuwendungen erhalte, freue ich mich über jede kleine Spende. Einfach und unkompliziert geht das über PayPalMe. Du unterstützt damit diesen Blog. Vielen Dank.