Images brauchen Sysprep

8. April 2011

Unser Experte Mark Minasi hat bereits in einem früheren Artikel hier auf NT4Admins gezeigt, welches Potenzial in der Unterstützung von virtuellen Festplatten steckt, die von den aktuellen Windows-Systemen unterstützt werden. In diesem Beitrag zeigt er nun, wie ein Administrator mit Hilfe des Tools Sysprep einen „Prototyp-PC“ erstellen kann.

Bild 2. Welche SID hat ein System: Das Tool PsGetSid zeigt sie an der Kommandozeile.

In seinem Artikel „Der Weg zu Boot-fähigen VHD-Dateien“ hat unser Autor schon demonstriert, welche ersten Schritte ein Systemverwalter unternehmen kann, um eine der spannendsten neuen Fähigkeiten der Windows-7- und Windows-Server-2008-Systeme direkt zu verwenden: dem Booten aus einer VHD-Datei. Hier geht er nun zum zweiten Schritt über und zeigt, wie ein Referenzsystem erstellt wird, dass dann so bereinigt ist, dass auch ohne Probleme direkt von der virtuellen Festplatte aus starten und im Netzwerk zum Einsatz kommen kann.

Wer ein solches Abbild im VHD-Format erstellen will, muss dazu zunächst einmal ein Art „Prototyp-PC“ (das Referenzsystem) aufbauen. Dieses Referenzsystem beinhaltet dann auch all die Anwendungen, die ein Systembetreuer standardmäßig auf „seinem“ Client-System installiert haben möchte. Diese Anwendungen wird er dann so konfigurieren, wie er sie auf diesen Systemen vorfinden möchte.

Danach muss er das Tool Sysprep einsetzen, um diesen Referenz-PC so generisch zu machen, dass er ohne Probleme auf dutzenden, hunderten oder sogar tausenden von Systemen ausgerollt werden kann. In einem weiteren Schritt gilt es dann mit Hilfe des Programms ImageX das eigentliche Abbild zu erstellen und dieses – wiederum unter Einsatz von ImageX – dieses so erstellte Abbild schließlich in eine VHD-Datei zu kopieren.

Das Erstellen des Referenz-PCs und die Mythen um die SID

Wir gehen davon aus, dass die Leser unseres Portals sehr genau wissen, wie ein Betriebssystem installiert wird, und wie sie ihre Anwendungen zu konfigurieren haben, dass sie genau den eigenen Vorstellungen entsprechen. Diesen Schritt werden wir aus diesem Grund hier auch überspringen und uns direkt mit dem Programm Sysprep befassen.

Dieses Programm ist aus folgenden Gründen notwendig: Alle Windows-Systeme aus der Windows-NT-Familie (wie beispielsweise auch Windows XP und alle nachfolgenden Client-Systeme) besitzen grundsätzlich eine Sicherheits-Identifikation, die sogenannte SID (Security Identifier), die ein System eindeutig identifiziert. Wenn ein Administrator also einfach ein Referenzsystem durch das Klonen eines bestehenden Systems erstellt und dieses dann auf alle Systeme im Netzwerk verteilt, so bekommt er eine Installation, in der alle Computer die SID, also im Prinzip den gleichen Namen, besitzen.

Naiver Weise könnte man nun fragen was daran falsch ist und anschließend zu der Idee gelangen, dass die Bearbeitung mit Sysprep insgesamt überflüssig ist. Vielfach findet man auch im Internet Berichte, die von wahren Schreckensszenarien zu berichten wissen, wenn eines oder mehrere Windows-Systeme mit der gleichen SID in einem Netzwerk zum Einsatz kommen. Wer es allerdings schon einmal selbst ausprobiert hat, verschiedene Windows-PCs mit der gleichen SID im Netzwerk zu betreiben, der wird wie der Autor festgestellt haben, dass zunächst einmal überhaupt nichts passiert.

In der Tat existiert sogar ein Blog-Post von Mark Russinovich aus dem Jahr 2009 mit dem schönen Titel „The Machine SID Duplication Myth (and Why Sysprep Matters), in dem der bekannte Systemspezialist ausführt, dass ein Netz von Workstations mit identischen SIDs nur sehr wenige bis keine negative Seiteneffekte zeigen würde. Als Beispiel dazu führt er die Windows-Server Update-Dienste (WSUS) an. Deshalb könnte ein Administrator also durchaus zu der Überzeugung kommen, dass er sich diesen Schritt und damit den Einsatz von Sysprep sparen könnte.

Allerdings weist ja auch Mark Russinovich – wie schon der Titel seines Blog-Posts zeigt – darauf hin, dass es durchaus sinnvoll ist, dieses Tool zu verwenden. Und so rät auch unser Autor allen Systemverantwortlichen dazu, dass sie – vor allen Dingen wenn sie in Bezug auf den Microsoft-Support auf den sicheren Seite sein wollen, sich mit Sysprep beschäftigen und dieses Werkzeug zur Vorbereitung eines Abbilds einsetzen sollten.

Bild 3. Problemlösung durch Eingriff in die Registry: So kann Sysprep häufiger als dreimal verwendet werden.

Einsatz des Werkzeugs: Sysprep gehört zum Windows-System

Wer schnell die SID eines Systems oder eines Anwenders herausfinden will, kann dazu auf die Sammlung der PsTools von Mark Russinovich zurückgreifen, zu denen auch das Programm PsGetSid gehört, das diese Informationen direkt an der Kommandozeile ausgibt.

Seit dem Erscheinen von Windows Vista gehört die Sysprep-Software zu den festen Bestandteilen der Betriebssysteme. Auf den deutschen Windows-Releases wird es als Systemvorbereitungsprogramm bezeichnet und ist auch dort unter dem Pfad \windows\system32\sysprep zu finden. Der Einsatz erfordert allerdings eine Eingabeaufforderung mit Administratorrechten (elevated command prompt):

cd \windows\system32\sysprep

In diesem Verzeichnis kann dann beispielsweise ein Sysprep-Aufruf der folgenden Form eingegeben werden:

sysprep /generalize /oobe /shutdown

Dieser Aufruf stellt sicher die einfachste Form eines Sysprep-Befehls dar. Mit Hilfe des Schalters /generalize wird das Kommando angewiesen, unter anderem die SID heraus zu löschen und alle „Plug & Play“-Einstellungen wieder zurück zu setzen. Etwas seltsam mutet zunächst der Schalter mit der Bezeichnung /oobe an: Wird er nämlich nicht mit angegeben, wird Sysprep nicht arbeiten.

Durch diese Einstellung wird das System angewiesen, beim nächsten Start dem Anwender den Assistenten für den ersten Einsatz des Windows-Systems anzuzeigen. Die Microsoft-Entwickler haben dies als „out-of-the-box experience“ bezeichnet, woraus sich auch die Abkürzung OOBE erklärt. An dieser Stelle ist eine Warnung angebracht: Wer Sysprep auf dem entsprechenden System ausgeführt hat, darf es nach dem Herunterfahren nicht wieder neu starten. Windows würde dann nämlich versuchen, sich selbst zu rekonfigurieren, wodurch sich dieses System dann wieder in einem Zustand befinden würde, der nicht für das Klonen geeignet ist! Wir werden in einem weiteren Artikel dieser Reihe noch zeigen, wie dann ein derartiges System mit Hilfe eines anderen Betriebssystems gestartet werden kann.

Problemlösung mittels eines Eingriffs in die Registry

Ein weitere wichtiger Hinweis: Ein Administrator kann Sysprep auf Vista- und Windows-7-Systemen insgesamt nur dreimal einsetzen, danach ist eine Registry-Manipulation nötig, um noch mit diesem Werkzeug zu arbeiten. Wer also Sysprep dreimal verwendet, um das Abbild eines Windows-Systems zu bearbeiten und dieses dann wieder startet, damit es sich mit Hilfe des OOBE-Assistenten wieder selbst konfiguriert, wird beim nächsten Einsatz von Sysprep mit der leider kryptischen und beängstigenden Fehlermeldung eines „Fatal Error“ begrüßt.

Dieses unangenehme Verhalten des Tools trat erstmals mit Windows Vista auf und ist auf die Produktaktivierung zurückzuführen.Die Ursache dieses Problems ist allerdings nicht im Programm Sysprep zu suchen, sondern auf einen Seiteneffekt zurückzuführen, der als „activation re-arm“, also in etwa als „wieder Scharfschalten der Aktivierung“ bezeichnet wird. Wer diesen Seiteneffekt ausschalten will, kommt leider um einen Eingriff in die Registrierungsdatenbank nicht herum. Dazu muss er sich zunächst zu folgendem Unterschlüssel der Registry bewegen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\SoftwareProtectionPlatform

Dort muss dann der Eintrag „SkipRearm“ (der vom Typ REG_DWORD ist) auf den Wert „1“ gesetzt werden. Dies kann natürlich sowohl direkt im Registrierungs-Editor oder mittels des Kommandozeilen-Werkzeugs „Reg“ mit dem folgenden Aufruf geschehen:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v SkipRearm /d 1 /t REG_DWORD /f

Auch dieses Kommando verlangt ein Fenster der Eingabeaufforderung, das mit Administratorrechten zu Werke geht.

Das Reg-Kommando verwendet dabei die folgende Syntax: An erster Stelle steht der Schlüssel aus der Registry, der den zu ändernden Eintrag beinhaltet. Der Schalter „/v“ benannt den entsprechenden Eintrag, während unter „/d“ der dort abzuspeichernde Wert zu finden ist. Während „/t“ den genauen Typ dieses Wertes spezifiziert muss schließlich noch der Schalter „/f“ zum Einsatz kommen, um das Werkzeug dazu zu veranlassen, einen eventuell bereits vorhandenen Wert zu überschreiben.

Mit den in diesem Artikel beschrieben Schritten und Vorgehensweisen steht nun alle Mittel bereit, um ein entsprechendes Abbild zu erstellen. Wir werden in einem demnächst folgenden Artikel beschreiben, welche Kommandos und Software dazu notwendig sind und wie das eigentliche Image dann erstellt wird.

Mark Minasi/ fms

Lesen Sie auch