Srvcomment

Alle Skripte sind Muster ohne jede Gewährleistung oder Funktionsgarantie. für Schäden bin ich nicht verantwortlich. Achten Sie auf Zeilenumbrüche bei der �Übernahme.

VBScript und 64Bit !
Viele 32bit COM-Objekte lassen sich auf einem 64bit System nur instanziieren, wenn die 32bit Version von CSCRIPT/WSCRIPT genutzt wird, welcher unter C:\Windows\SysWOW64\cscript.exe liegt.

Problemstellung

Schon immer konnte bei einem Windows System eine Kommentar bzw. eine Beschreibung mit gepflegt werden. Nur haben dies die meisten Administratoren nicht getan, da es als "Kür" denn als Pflicht angesehen wurde.

Auf der anderen Seite gibt es aber auch seit dem Active Directory für jeden Computer ein Computerobjekt und auch dort können Beschreibungen und Manager gepflegt werden.

Diese Informationen sind aber komplett unabhängig voneinander so dass eine doppelte Pflege erforderlich und die Gefahr von Inkonsistenzen vorhanden ist.

Diese Kommentare haben aber noch weitergehende Folgen. Seit Windows XP wird der Kommentar auch in der NetzwerkUmgebung statt des Servernamens angezeigt sogar als Sortierkriterium genutzt. Also sollte der Inhalt auch etwas über den Server aussagen.

Zum Erschrecken vieler Administratoren wird im Feld "Name" nur dann der Servername angezeigt, wenn die Serverbeschreibung "leer" ist. Sobald eine Beschreibung eingetragen ist, wird diese anstelle des Namens angezeigt. Ein "Browsen" anhand des Servernamens wird damit faktisch unmöglich, es sei denn Sie pflegen auch den Servernamen in der Beschreibung mit ein.

Ziel

Also habe ich nach eine Abhilfe gesucht, die mir diese doppelte Pflege etc. abnimmt. Die Aufgabenstellung lautete dabei

  • Abgleich AD und Server
    Die Beschreibung lokal auf dem Server und beim Computerobjekt im Active Directory sollte gleich sein
  • Servername am Anfang
    Aufgrund der Sortierung sollte die Lösung sicherstellen, dass der Servername am Anfang der Beschreibung auftaucht.
  • Abgleich von Änderungen Werden die Eintragungen z.B. im AD geändert, dann sollte der Eintrag beim Server nach einiger Zeit ebenfalls geändert sein.
  • Sicherheit beachten
    Um die Einträge zu machen, muss die Lösung natürlich sowohl auf dem Computer selbst als auch auf das Computerobjekt einige Berechtigungen haben. Es darf aber nicht sein, dass dazu die Lösung als Domänenadministrator laufen muss oder sogar ein Kennwort irgendwo hinterlegt wird.
  • Keine Dienste oder Add-ons
    Zuletzt kann es nicht mein Ziel sein, für solch eine Aufgabe eine Software zu entwickeln, die als Dienst irgendwo installiert sein muss.

Was sich erst mal als schwer lösbar darstellt, ist am Ende dann doch einfacher und sogar mit Bordmitteln und etwas VBScript zu lösen.

Lösungsweg

Zuerst ist wichtig die Position der Einstellungen zu können, die natürlich bei einem Automatismus nicht mit der MMC oder den Eigenschaften des Computers gepflegt werden können.

Die Beschreibung in den Einstellungen des Arbeitsplatzes liegen in der lokalen Registrierung beim Dienst "LanManServer":

Die Beschreibungen im Active Directory selbst sind im Feld "description" beim dazugehörigen Computerobjekt abgelegt.

Also fehlt nur ein Script, welches diese Werte miteinander abgleicht und die geforderten Einstellungen erfüllt. Das Script nutzt dazu folgende Logik:

Wie sie gut ersehen können, wird die Beschreibung im Active Directory als Referenz herangezogen. Nur wenn das Feld Beschreibung im Active Directory NICHT gefüllt ist, wird die lokale Beschreibung ausgelesen und in das Active Directory übernommen. So ist sichergestellt, dass die Daten auch "offline" im AD geändert werden können und der Client den Einstellungen des AD folgt.

Zusätzlich wird bei Servername selbst an den Anfang der Beschreibung eingefügt, wenn diese in die lokale Registrierung geschrieben wird. Damit ist sichergestellt, dass in der Auflistung der NetzwerkUmgebung durch den Browser-Dienst auch der Servername am Anfang als Sortierung herhalten kann.

Download und Einrichtung als Gruppenrichtlinie

Zuerst das Script

srvcomment1.1.vbs
Nach dem Download als VBS in die Gruppenrichtlinie mit abspeichern.

Das Script wird nach ausführlichen Tests einfach als "Startup-Script" über eine Gruppenrichtlinie an die gewünschten Systeme gebunden. So wird bei jedem Start des Systems das Script gestartet und ausgeführt. Im Eventlog finden Sie die Ergebnisse des Ablaufs.

Um die Funktion zu testen bietet es sich an, eine eigene Gruppenrichtlinie anzulegen und über die Filterung durch Berechtigungen diese nur auf ein paar Testsysteme wirken zu lassen.

Ein Startup-Script startet wirklich nur einmal beim Start des Systems noch ehe der Anwender sich anmelden kann. Das Script läuft als "Local System" und hat damit sowohl die Rechte in der Registrierung als auch auf sein eigenes Computerobjekt, um die Änderungen vorzunehmen.
Ein erneutes Anwenden mittels "GPUPDATE" oder "SECEDIT" funktioniert nicht !.
Sie können aber z.B.: eine DOS-Box als "Local System" über den AT-Befehl "at 16:52 /interactive cmd.exe" erhalten und dort das Script testen.

Achtung
Es kann durchaus sein, dass auch "LocalSystem" in ihrem AD keine Rechte auf das eigene Computerobjekt hat. Dann müssen Sie zur Funktion die Berechtigungen im AD entsprechend anpassen.

Das Update der Serverbeschreibung erfolgt in der Registrierung. Es kann sein, dass die Änderungen im Serverdienst daher erst nach dem nächsten Reboot sichtbar werden.

Weitere Links