Skripte, Befehle und Erweiterungen für Administratoren
Wenn es um Automatismen und Komfort in großen Umgebungen geht ist für den Administrator das Skript das beste Mittel. Wir haben hier eine kleine Auswahl wichtiger Befehle, Skripte und Erweiterungen für das Tagesgeschäft zusammengefasst.

- Skripte, Befehle und Erweiterungen für Administratoren
- Skripte und Befehle für den Admin, Teil 2
Um sicherzustellen, dass die kleinen Programme auch auf älteren Maschinen tadellos eingesetzt werden können, beschränken wir uns auf die von Microsoft mitgelieferten Techniken. Das wichtigste Arbeitsmittel ist, auch im Jahr 2012, die Eingabeaufforderung (cmd.exe), der Windows Scripting Host (WSH)...
Um sicherzustellen, dass die kleinen Programme auch auf älteren Maschinen tadellos eingesetzt werden können, beschränken wir uns auf die von Microsoft mitgelieferten Techniken. Das wichtigste Arbeitsmittel ist, auch im Jahr 2012, die Eingabeaufforderung (cmd.exe), der Windows Scripting Host (WSH) mit der Sprache VB-Skript (VBS) und das Windows Management Instrumentation (WMI).
Um einige Eckdaten auch aus Druckern, Routern und Unix-Systemen, wie beispielsweise OS-X-Computern, auslesen zu können, bedienen wir uns des Simple Network Management Protocols (SNMP). Und ohne die Powershell, quasi die Konsole 2.0, kommen auch wir nicht mehr aus.
Tipp 1: Skript-Jobs und Gruppenrichtlinien

In einer Active Directory-Umgebung verwenden Administratoren für die Einstellungen von Client-Systemen in erster Linie Gruppenrichtlinien, die die gezielte Anpassung der Windows-Registry auf dem Client durchführen und auch durchsetzen. Die hier vorgestellten Skript-Jobs sollen in keinster Weise mit GPOs konkurrieren. Administratoren versuchen stets, die einfachste und effektivste Bereitstellung zu wählen - daher würden wir einer Gruppenrichtlinie den Vorzug geben, ehe ein Skript-Job zum Einsatz kommt.
Ist keine Domäne vorhanden, so bleibt dem IT-Profi jedoch gar nichts anderes übrig, als entweder die Lokalen Richtlinien auf dem Windows-PC von Hand anzupassen oder beim System-Start einen Job laufen zu lassen. Solche Jobs kommen übrigens auch sehr gern im privaten Umfeld zum Einsatz. Beispielsweise wenn der PC, der am Familien-TV angeschlossen ist, per WLAN eine Verbindung zum Gaming-PC aufbauen soll, um dessen Musiktitel abspielen zu können und auf dessen Drucker zuzugreifen.
Tipp 2: Anmeldeskript - Laufwerke und Drucker
Das möglicherweise wichtigste Skript für einen PC, der in einem Unternehmensnetzwerk genutzt wird, ist das Anmeldeskript. In der Praxis unterscheiden Administratoren die klassischen Anmeldeskripts, die dem Benutzer dessen Netzlaufwerke und Drucker zuordnen. Logon- und Logoff-Skripts, die per Gruppenrichtlinie für Benutzer zugewiesen wurden und Start- und Herunterfahren-Skripts des Computers, die ebenfalls per GPO zugeordnet wurden.
Das klassische Skript für das NETLOGON bietet den Vorteil, dass es seit Windows-NT-Zeiten faktisch unverändert verwendet werden kann. Im Eigenschaftendialog des Benutzers im Active Directory wird hierzu der Dateiname des Skripts zugewiesen. Windows speichert diese Skripts in der NETLOGON-Freigabe auf den Anmeldeservern und repliziert diese automatisch an die anderen Anmeldeserver.
Zwar kann der Administrator auch VBScript oder JScript als Anmeldeskript nutzen, jedoch muss sichergestellt sein, dass auf dem Zielrechner, dem Client, die benötigte Umgebung verfügbar ist. Im Zusammenspiel mit Umgebungsvariablen und dem Aufruf weiterer Skript-Jobs mit dem Kommando CALL ist NETLOGON auch heute noch sehr gut einsetzbar. Ein Beispiel:
rem *** Allgemeiner Teil ***
net use h: \\{server}\%USERNAME% /
persistent:no
net use m: \\{server}\{freigabe1} /
persistent:no
rundll32 printui.dll,PrintUIEntry /q /
in /n \\{server}\{laser}
rem *** Spezieller Teil ***
net user /DOMAIN %username% | find
"{MARKETING}"
if not errorlevel = 1 (
rundll32 printui.dll,PrintUIEntry /q /
in /n \\{server}\{farblaser}
net use n: \\{server}\{freigabe2} /
persistent:no
)
Begriffe in geschweiften Klammern gilt es gemäß der eigenen Umgebung anzupassen. Der Schalter /persistent:no stellt sicher, dass die Maschine keine dauerhaften Verbindungen aufbaut. Da das Anmeldeskript bei jeder Anmeldung aufgeführt wird, ist dies nicht erforderlich.
Es folgt die Einrichtung einer Druckerverbindung über printui.dll. Dieser Befehl besitzt viele Optionen und ist im Gegensatz zu den meisten anderen Befehlen unter Windows case sensitive. Eine Übersicht aller Optionen erhält der Systembetreuer durch die Eingabe von
rundll32 printui.dll,PrintUIEntry /?
in der Eingabeaufforderung oder unter Ausführen. Der Druckertreiber muss in jedem Fall bereits auf dem Client-Computer vorhanden sein, da ansonsten der Installationsdialog angezeigt wird, der von einem gewöhnlichen Domänen-Benutzer mangels Rechten nicht ausgeführt werden darf. Die Bereitstellung von Druckern durch einen x86-Server für x64-Client-Systeme ist übrigens problemlos möglich. Der Administrator muss jedoch sicherstellen, dass der x64-Treiber im Register Freigabe unter Zusätzliche Treiber auch bereitgestellt wird.
Ist der sich anmeldende Benutzer in der Gruppe MARKETING, so wird im obigen Skript neben dem normalen Laserdrucker am Server auch der Farblaser verbunden. Durch IF-Konstrukte in dieser Form ist es problemlos möglich, ein einziges Anmeldeskript für viele Benutzer zu verwenden. Die 1:1-Zuordnung von Benutzer und Anmeldeskript wird ansonsten in größeren Umgebungen zu aufwändig. Äußerst praktisch in diesem Zusammenhang ist der Befehl CALL, der aus einem Skript heraus ein anderes Skript aufruft (CALL {SCRIPTNAME}).
Tipp 3: Desktop-Einstellungen
set datei="%USERPROFILE%\Desktop\Termi
nalserver.RDP"
if exist %datei% goto weiter
echo full address:s:{Terminalserver-
Name/IP-Adresse} > %datei%
echo username:s:%USERNAME% >> %datei%
echo domain:s:{Domänenname} >> %datei%
:weiter
Das hier gezeigte Skript legt eine Verknüpfung für eine RDP-Verbindung für einen Terminalserver an und füllt die notwendigen Felder Benutzername und Domänenname. Alle anderen Optionen, beispielsweise zum Verhalten der Kompressions-Einstellungen oder der Zwischenablage, ließen sich ebenfalls voreinstellen. Wie diese Optionen jeweils heißen, finden Sie unter https://goo.gl/6dsvs in der technischen Referenz zum Windows Server im Microsoft-TechNet.

Tipp 4: Backup mit Protokoll-E-Mail
Das Zusammenspiel der Aufgabenplanung, beziehungsweise der Geplanten Tasks (Scheduler), dem robusten Kopierbefehl für die Kommandozeile ROBOCOPY.EXE und dem kostenfreien Kommandozeilen-SMTP-E-Mail-Programm BLAT.EXE ermöglicht dem Administrator ein sehr einfaches Backup-System. Das Protokoll der Sicherung lässt sich der Systembetreuer bei Ausführung einfach per E-Mail zuschicken.
BLAT ist sehr leicht einzurichten: Zunächst das nicht einmal 600 KByte große ZIP-Archiv über Source-Forge herunterladen und in einem Systemverzeichnis, beispielsweise SYSTEM32, entpacken. Bevor BLAT für den Versand von E-Mails über die Kommandozeile genutzt werden kann, muss es eingerichtet werden. Das erledigt der Administrator durch ein einziges Kommando:
blat -savesettings -f {E-Mail} -server
{SMTP-Server} -u {Login} -pw {Passwort}
Von nun an kann über die Kommandokonsole durch Eingabe des Befehls
blat {Dateiname} -to {Ziel-E-Mail-
Adresse}
eine Datei per E-Mail verschickt werden. In unserem Beispiel das Protokoll des Sicherungsbefehls per Robocopy. Robocopy ist so etwas wie der große Bruder von X-Copy und führt einen Kopiervorgang in beinahe allen Fällen fort. Zudem besitzt das Konsolenprogramm die Fähigkeit, Ordner zu spiegeln - ist im Originalordner eine Datei gelöscht worden, so löscht die Software diese Datei im Zielordner. Ein äußerst mächtiges Programm.
robocopy c:\Users\Ben\Desktop z:\Ben\
Desktop /A /R:2 /W:2 /S /NP /NFL /NDL /LOG:robojob.log
robocopy c:\Data z:\Data /A /R:2 /W:2
Ω/S /NP /NFL /NDL /LOG+:robojob.log
blat robojob.log -to email@domain.com
-subject "Backup-Protokoll"

Das obige Skript, ausgeführt als .BAT- oder .CMD-Datei, kopiert alle Dateien und Unterordner (/S) vom Desktop des Benutzers Ben auf das Laufwerk Z: und alle Dateien aus dem Ordner Data ebenfalls auf Z:. Hierbei werden nur die Dateien kopiert, die sich verändert haben (/A - Archivbit).
Kommt es bei dem Kopierbefehl zu einem Fehler, so versucht Robocopy zweimal (/R:2), die Datei zu kopieren und macht zwischen den Versuchen jeweils zwei Sekunden (/W:2) Pause. Das Protokoll wird dabei auf das Nötigste reduziert (/NP /NFL /NDL). Nach der Kopie wird das Protokoll per E-Mail an die Adresse email@domain.com mit der Betreffzeile Backup-Protokoll versandt.
Ein solcher Kopierbefehl, beispielsweise jede Nacht, angesteuert über den Scheduler, ist eine einfache und kostengünstige Variante zur Sicherung. In der Praxis eignen sich selbst einfache USB-Sticks mit hoher Kapazität als Zieldatenträger.