![]()
Automatische Windows Installation direkt von der CD [ T2204 ]
Grundlagen
- die Antwortdatei »WinNT.sif«
Erzeugen
der Antwortdatei
Testen
der Antwortdatei
Laden
der Antwortdatei durch das Setup-Programm
Starten
von Batchdateien während und nach dem Windows-Setup
Grundlagen
cmdlines.txt,
cmdlines.bat
AutoInst.bat
Hinweise
zu RIS-CD-based Setups
Weitere Weblinks
zum Thema
Testumgebung
Rechtshinweise
Microsoft unterstützt vielfältige Methoden zur automatischen Installation von Windows. Das Thema ist aber gerade aufgrund der vielfältigen Möglichkeiten und Verfahren ziemlich komplex. Dieser Artikel zeigt, wie man die Windows Installation mithilfe einer Antwortdatei »Winnt.sif« automatisieren kann. Dabei wird gezeigt, wie man die Antwortdatei direkt auf der CD hinterlegen kann.
Außerdem wird erläutert, wie man eigene Batch-Dateien während und nach der Windows-Installation ausführen kann. Ziel ist eine auf die individuellen Bedürfnisse des Unternehmens zugeschnittene Windows-CD.
Grundlage für die Automatisierung einer CD-basierten Installation ist die Antwortdatei »WinNT.sif«. Mit Hilfe dieser Antwortdatei kann man zahlreiche Parameter der Installation steuern.
Eine geeignete Antwortdatei für die automatische Installation mehrerer Windows Betriebssysteme finden Sie hier:
Universelle Antwortdatei WINNT.SIF für Windows
2000, XP und Windows Server 2003 [ T2114 ]
Verwenden Sie diese Antwortdatei als Grundlage und nehmen Sie ggf. die im vorliegenden Artikel beschriebenen Änderungen vor. Die Dokumentation der Antwortdateien finden Sie bei den so genannten Deployment-Tools des jeweiligen Betriebssystems.
Deployment-Tools
Windows XP SP2
Bevor Sie die Windows-CD erweitern sollten Sie zunächst sicherstellen, dass Ihre Antwortdatei wie gewünscht funktioniert. Dazu führen Sie eine Testinstallation mit einer normalen Microsoft Produkt-CD durch. Die zu testende Antwortdatei wird dabei über das Diskettenlaufwerk zugeführt. Die Vorgehensweise ist in folgendem Artikel genau beschrieben:
Universelle Antwortdatei WINNT.SIF für Windows
2000, XP und Windows Server 2003 [ T2114 ]
Wenn das Setup-Programm von Windows einfach durch Booten (mit dem Original-Bootsektor von Microsoft) gestartet wird, dann sucht das Setup-Programm die Antwortdatei an folgenden Stellen und in folgender Reihenfolge:
im Diskettenlaufwerk A: im Hauptverzeichnis
Man kann eine passende WinNT.sif direkt in den Ordner »I386« auf die CD brennen. Falls man dann doch mit einer anderen WinNT.sif installieren muss, kann diese jederzeit über das Diskettenlaufwerk zugeführt werden.
$OEM$ ist ein Verzeichnis, welches der CD hinzugefügt werden kann. Dieses Verzeichnis wird vom Setup-Programm erkannt. Es dient der automatischen Installation von Treibern, Programmen und anderen Komponenten, welche auf einer Standard-Microsoft-CD nicht vorhanden sind.
Wichtig
Entgegen manchen Dokumentationen muss das $OEM$ Verzeichnis bei einer CD-basierten Installation direkt im Hauptverzeichnis der CD untergebracht werden (also NICHT als Unterordner von »I386«. Hier eine Tabelle mit einigen wichtigen Unterordnern von $OEM$.
| Ordner auf der CD | Funktion |
|---|---|
| $OEM$ - cmdlines.txt | Direkt im Verzeichnis $OEM$
kann eine Datei namens »cmdlines.txt« untergebracht werden. Diese dient
zum Starten eigener Programme während dem Setup. Details hierzu: |
| $OEM$\$1 | Alle Ordner und Dateien, die sich im $1-Ordner befinden, werden vom Setup-Programm automatisch nach C:\ kopiert. |
| $OEM$\$$ | Dateien dieses Ordner werden automatisch in den Windows Ordner kopiert (C:\Windows) - entspricht der Variable %windir% |
| $OEM$\$$\System32 | Unterordner System32 |
Weitere Details finden Sie in der Dokumentation der
Deployment-Tools oder im Ressource-Kit:
Distribution
Folder Structure
Viele Dinge lassen sich über die Antwortdatei regeln. Jedoch gibt es oft den Wunsch, weitere Dinge automatisiert zu erledigen. Zu diesem Zweck kann man Batch- oder VB-Scripte schreiben. Nun geht es darum, aufzuzeigen, wie man das Setup-Programm beauftragt die selbst geschriebenen Skripte zu starten. Es gibt drei Methoden:
Die Datei Cmdlines.txt im $OEM$-Ordner
Über einen Eintrag im Bereich [GuiRunOnce] der Antwortdatei
Durch Übergabe einer Batch-Datei per Parameter beim Starten des Setup-Programmes »Winnt.exe«.
Das leistungsfähigste Verfahren ist die Datei Cmdlines.txt. Dieser Artikel beschäftigt sich ausschließlich mit diesem Verfahren.
Die bloße Anwesenheit einer Datei namens Cmdlines.txt im Ordner $OEM$ bewirkt, dass die dort enthaltenen Kommandos während dem laufenden Windows Setup ausgeführt werden. Eine Eintrag in der Antwortdatei ist hierzu nicht notwendig.
Hier einige experimentell ermittelte Aussagen zur Cmdlines.txt:
Die Datei läuft im System-Account (zu dem Zeitpunkt ist noch kein Benutzer angemeldet)
Bei CD-Installationen ist das aktuelle Verzeichnis das $OEM$-Verzeichnis der CD (in der Regel also D:\$OEM$)
Bei RIS-Installationen ist das aktuelle Verzeichnis C:\$Win_NT$.~LS\$OEM$
Die Datei läuft zu einem sehr frühen Zeitpunkt, noch während der Installation des Betriebssystems!
Die über $OEM$\$1 kopierten Ordnerstrukturen sind auf der Platte C:\ bereits vorhanden.
In Batchdateien, die über Cmdlines.txt aufgerufen werden, kann bereits mit Variablen gearbeitet werden (%Systemdrive% wird korrekt nach C: aufgelöst)
Schreibzugriffe auf den Bereich »HKCU« der Registry werden ins Default-User-Profil geschrieben!
Besonders bemerkenswert ist der letzte Punkt. Über diesen Mechanismus kann bewusst das Default-User-Profil manipuliert werden. Dieses (manipulierte) Default User Profil wird dann bei der späteren ersten Anmeldung des Users »Administrator« am Ende des Setups sofort verwendet. Dies bedeutet, dass auch das Profil des Administrators auf diese Weise angepasst werden kann.
Bewährt hat sich folgendes Verfahren zur Nutzung der Cmdlines.txt:
--Inhalt der Cmdlines.txt------------
[Commands]
".\cmdlines.bat"
----------------------------------------------
Durch dieses Kommando wird eine Datei namens Cmdlines.bat, die ebenfalls direkt unter $OEM$ untergebracht werden muss, gestartet. In Cmdlines.bat können nun beliebige Batch-Befehle untergebracht werden.
Die cmdlines.bat läuft unter System-Account während dem Windows-Setup. In vielen Fällen möchte man nach dem Windows-Setup noch einige Arbeiten durchführen. Hierzu soll eine Batchdatei namens AutoInst.bat dienen.
Die AutoInst.bat bekommt man über folgende Methode zum Laufen:
Über die Antwortdatei schaltet
man zunächst den AutoLogon-Mechanismus ein. Dies bewirkt ein automatisches
Anmelden des lokalen Administrators nach jedem Booten. Zu diesem Zweck
müssen in der Antwortdatei »Winnt.sif« im Bereich [GuiUnattended] folgende
Einträge eingefügt werden:
---WinNT.sif------------------------
AutoLogon=Yes
AutoLogonCount=99
AdminPassword="Test"
----------------------------------------
Nun erstellt man einen Link (Verknüpfung), welcher auf
die AutoInst.bat zeigt. Den Link setzen Sie in die allgemeine
AutoStart-Gruppe. Diesen Link kann man durch einen passenden Eintrag in der Cmdlines.bat erzeugen. Dies ginge zum Beispiel durch Aufruf des folgenden
vbScripts:
--- Startup.vbs----------------------------
Set WshShell = CreateObject("WScript.Shell")
AllUsersStartup = wshShell.Specialfolders("AllUsersStartup")
Name = AllUsersStartup & "\AutoInst.lnk"
Set scut = wshshell.CreateShortcut(Name)
scut.TargetPath = "C:\AutoInst.bat"
scut.WindowStyle = 3
scut.Save
---------------------------------------------------------------
Die Datei AutoInst.bat wird nun einfach nach $OEM$\$1 kopiert und dadurch automatisch nach C:\ transportiert.
Nun wird die AutoInst.bat nach jedem Booten des Systems automatisch anlaufen. Durch geeigneten Code innerhalb der AutoInst.bat sollte man bei Bedarf dafür sorgen, dass bei jedem Booten ein anderen Codeabschnitt ausgeführt wird.
Am Ende des gesamten Installationsprozesses sollten Sie daran denken, den AutoLogon-Prozess zu deaktivieren und auch den Link aus der Autostartgruppe wieder zu entfernen. Hierfür eignen sich folgende Code-Schnipsel:
--- RemoveAutoInst.vbs----------------------------
Set WshShell = CreateObject("WScript.Shell")
AllUsersStartup = wshShell.Specialfolders("AllUsersStartup")
Datei = AllUsersStartup & "\AutoInst.Lnk" 'Datei enthält nun den vollständigen
Pfad mit Dateinamen
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(Datei)) Then
Set File = fso.GetFile(Datei) 'Handle besorgen
File.Delete 'Datei löschen
End if
---------------------------------------------------------------
--- AutoLogonOff.bat--------------------------------------------------------------------------------------------------------------------------------
Reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon"
/v AutoAdminLogon /t Reg_SZ /f /d 0
Reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v
AutoLogonCount /t Reg_DWord /f /d 0
Reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v
DefaultPassword /t Reg_SZ /f /d xx
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Hinweis
Wie bereits unter
Grundlagen
erwähnt, könnte man eine Batchdatei auch über einen Eintrag unter [GuiRunOnce]
oder auch über einige andere Methoden (Autorun-Einträge in der Registry etc...)
zum Laufen bringen. Der Autor hat sehr viel Zeit mit dem Testen der
verschiedenen Möglichkeiten verbracht. Die einzige Methode, die unter allen
Umständen problemlos funktioniert ist die beschriebene Methode über den
AutoStart-Link.
Das in diesem Artikel beschriebene Verfahren ist primär für die Automatisierung CD-basierter Installationen gedacht. Das Verfahren funktioniert aber ohne Änderung auch bei RIS-Installationen (CD-Based RIS-Images). In diesem Falle wird das komplette $OEM$-Verzeichnis einfach in das entsprechende Verzeichnis des RIS-Images, ebenfalls parallel zu »i386« kopiert. Eine WinNT.sif gibt es bei RIS-Installationen nicht. Stattdessen muss hier die RIS-Antwortdatei (ristndrd.sif) im Ordner »i386\Templates« des entsprechenden Images angepasst werden.
How
to create a custom bootable unattended Windows 2000 CD
Andere Umgebungen wurden nicht getestet.
Kein Teil dieser Informationen darf ohne schriftliche Genehmigung reproduziert, vervielfältigt, veröffentlicht oder in Lehrveranstaltungen verwendet werden. Die Nutzung ist ausschließlich zum persönlichen Gebrauch des Lesers gedacht. Sie können aber gerne einen Link auf diese Seite setzen (Links sollten ein neues Fenster öffnen). Es wird darauf hingewiesen, dass Markenzeichen, Namen, Produkte und Bezeichnungen auch ohne ausdrückliche Nennung oder Kennzeichnung durch Rechte Dritter geschützt sind! Es obliegt dem Anwender die Informationen und Programme selbst zu prüfen und gegebenenfalls zu entscheiden, ob diese für seine beabsichtigten Zwecke tauglich sind. Die Informationen auf unserer Webpräsenz werden ohne Anspruch auf Korrektheit oder Vollständigkeit veröffentlicht. Auf unsere ausführliche Rechtshinweise wird ausdrücklich verwiesen.
|
(C) DATA 5 Ingenieurbüro für Datentechnik GmbH |