Home

 AC.net

Hochschule 

 

 

      Kontakt 

 About 

Impressum 

  in

Automatische Windows Installation direkt von der CD [ T2204 ]

 

 Inhalt

 Info

 Grundlagen - die Antwortdatei »WinNT.sif«
     Erzeugen der Antwortdatei
     Testen der Antwortdatei
     Laden der Antwortdatei durch das Setup-Programm

 $OEM$

 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

Info

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.

Sprung zum Seitenanfang

Grundlagen - die Antwortdatei Winnt.sif

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.

Sprung zum Seitenanfang

Erzeugen der Antwortdatei »WinNT.sif«

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

Sprung zum Seitenanfang

Testen der Antwortdatei

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 ]

Sprung zum Seitenanfang

Laden der Antwortdatei durch das Setup-Programm

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:

  1. im Diskettenlaufwerk A: im Hauptverzeichnis

  2. im Ordner »I386« der Boot-CD

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.

Sprung zum Seitenanfang

$OEM$

$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:
 cmdlines.txt
$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
Tabelle 1: Ausgewählte Ordner von $OEM$

Weitere Details finden Sie in der Dokumentation der Deployment-Tools oder im Ressource-Kit:
 Distribution Folder Structure

Starten von Batchdateien während und nach dem Windows-Setup

Grundlagen

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:

  1. Die Datei Cmdlines.txt im $OEM$-Ordner

  2. Über einen Eintrag im Bereich [GuiRunOnce] der Antwortdatei

  3. 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.

Sprung zum Seitenanfang

Cmdlines.txt /cmdlines.bat

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:

  1. Die Datei läuft im System-Account (zu dem Zeitpunkt ist noch kein Benutzer angemeldet)

  2. Bei CD-Installationen ist das aktuelle Verzeichnis das $OEM$-Verzeichnis der CD (in der Regel also D:\$OEM$)

  3. Bei RIS-Installationen ist das aktuelle Verzeichnis C:\$Win_NT$.~LS\$OEM$

  4. Die Datei läuft zu einem sehr frühen Zeitpunkt, noch während der Installation des Betriebssystems!

  5. Die über $OEM$\$1 kopierten Ordnerstrukturen sind auf der Platte C:\ bereits vorhanden.

  6. In Batchdateien, die über Cmdlines.txt aufgerufen werden, kann bereits mit Variablen gearbeitet werden (%Systemdrive% wird korrekt nach C: aufgelöst)

  7. 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.

Sprung zum Seitenanfang

AutoInst.bat

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:

  1. Ü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"
    ----------------------------------------

  2. 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
    ---------------------------------------------------------------

  3. 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.

Sprung zum Seitenanfang

Hinweise zu RIS-CD-Based Setups

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.

Sprung zum Seitenanfang

 Weitere Weblinks zum Thema

 How to create a custom bootable unattended Windows 2000 CD

Sprung zum Seitenanfang

 Testumgebung

Andere Umgebungen wurden nicht getestet.

Sprung zum Seitenanfang

 Rechtshinweise

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

 http://www.DATA5.de