MSDatec Leitseite
HandelswareHandelsware
Entwicklung und ProduktionEntwicklung
Netzwerke aufbauen und unterhaltenNetzwerke
Netzwerke aufbauen und unterhaltenkleines LAN
Netzwerke aufbauen und unterhaltenLinux-Server
Windows-NetzwerkinstallationNetz-Windows
Netzwerkgestützte Windows 95/98/ME-InstallationsanweisungSelbstgemacht
Auflistung der Dateien, die bei einer netzwerkgestützten Windows-Installation lokal noch vorhanden sein müssen Dateiliste
Auflistung der Problemfälle bei einer netzwerkgestützten Windows-InstallationBug-List
Support: Einrichtung, Pflege, Wartung und Reparaturen von EDV-Komponenten und NetzwerkenSupport
Seminare, denn man/frau lernt nie aus...Seminare
FirmeninfosÜber uns
Forum: Hier können Sie sich mit uns und anderen Besuchern austauschenForum

Netz-Windows - Selbstgemacht


1 Netz-Windows

Der Betreuer eines PC-Pools mit Windows 9x-Clients hat's nicht leicht: Mittels Turnschuh-Netzmanagement führt ihn sein Weg von Rechner zu Rechner, um vom Anwender verdrehte Einstellungen wieder hinzubiegen oder die fällige Neuinstallation des Betriebssystems und der Anwendungen durchzuführen.

Sofern die PCs baugleich, vernetzt und die Softwareinstallation auf allen Maschinen identisch ist, lassen sich viele manuelle Arbeiten einsparen, indem einmal eine Musterinstallation angefertigt wird, und dann diese Musterinstallation auf die verschiedenen Clients verteilt wird.

Insbesondere bei Schulungsrechnern ist es didaktisch sinnvoll, wenn alle Bildschirmarbeitsplätze gleich aussehen, um dem Bei mir sieht das aber ganz anders aus aus Teilnehmermunde zu entgehen. Auch Schulungsunterlagen oder ein auf eine Leinwand projizierter Bildschirminhalt wirken einfach überzeugender, wenn sie mit dem übereinstimmen, was der Seminarteilnehmer vor sich sieht.
Aber auch Arbeitsumgebungen im Alltagseinsatz können von einer standardisierten und schnell wiederherstellbaren Installation profitieren: Egal, wo sich der Mitarbeiter einloggt, findet er immer dieselbe Arbeitsumgebung wieder. Und sollte der GAU einmal eingetreten sein ("...Sie müssen Windows neu installieren..."), läßt sich mit dem Einlegen einer Bootdiskette der Schaden schnell wieder beheben.
Eine Netzwerkinstallation kann dies leisten und entlastet obendrein den Raumbetreuer.

Zu seligen DOS- und Windows 3.x-Zeiten war eine Netzwerkinstallation des Betriebssystems kein großes Thema. Die Clients starteten von der lokalen Platte oder von dem Boot-ROM der Netzwerkkarte, stellten die Netzwerkverbindung her und alles weitere spielte sich auf Netzlaufwerken ab. Die lokal benötigte Datenmenge paßte auf eine Diskette, und per Batchdatei ließen sich die lokalen und auf dem Netz befindlichen Dateien aus einem ebenfalls im Netz befindlichen Sicherungsverzeichnis automatisiert wiederherstellen.

1.1 Windows auf Draht

Auch Windows 95 - aber nicht Windows 98 - bietet die Option, sich im Netzwerk installieren zu lassen, wobei der Start von der Diskette, lokalen Festplatte oder dem Boot-ROM erfolgen kann (siehe Win95-Resource-Kit). Wer dies jedoch einmal durchgeführt hat, kennt die damit verbundenen Probleme: Wenn die Netzwerkinstallation dann irgendwann geklappt hat, finden Installationsprogramme ihre Dateien nicht mehr oder brechen mitten im Kopiervorgang mit ominösen Fehlermedungen ab ("Setup-Fehler 9").

1.1.1 Mini-Win

Zwischen dieser "echten" Netzwerkinstallation und einer vollständig lokalen Windows-Installation liegt die hier beschriebene netzwerkgestützte Installation, bei der nur die zum Booten von Windows 9x erforderlichen Dateien lokal vorgehalten werden und sich der Rest im Netz befindet - zumindest theoretisch. In der Praxis scheinen einige Programmierer den Pfad zu Systemdateien fest im Programm verankert zu haben, so daß diese Dateien ebenfalls lokal vorliegen müssen.

Diese netzwerkgestützte Installation hat mehrere Vorteile:

Die Nachteile seien aber nicht verschwiegen:

1.2 Automagisch

Die zweite Anforderung an eine ungeschützte Client-Installation ist, daß die vom Systembetreuer installierte Originalkonfiguration in einfacher Form und in möglichst kurzer Zeit wiederherstellbar ist. Kein Dozent kann von den Teilnehmern eines Computer-Einführungskurses verlangen, Unix-artige Kommandos einzutippen oder eine halbe Stunde zu warten, bis der Rekonfigurationsvorgang beendet ist.
Im einfacheren Fall, wenn lokal noch alle Dateien vorhanden sind, um unter DOS eine Netzverbindung herzustellen, kann eine Batchdatei den Job übernehmen, diese Netzverbindung herzustellen, alle lokalen Dateien zu löschen, vom Server die Originaldateien zu holen und anzupassen sowie einen Neustart auszulösen. Je nach Leistungsfähigkeit und Auslastung der Anlage ist dies in kurzer Zeit erledigt (1-2 min).
Falls die lokale HDD völlig geschreddert ist, muß der Betreuer oder Dozent mit einer Bootdiskette nachhelfen. Diese partitioniert die die lokale Platte, formatiert sie bootfähig und rüstet sie mit den zum Herstellen der Netzverbindung nötigen Dateien aus (ca. 2-3 min).

2 Schritt-für-Schritt-Anweisung

Für diejenigen, die immer noch interessiert sind, folgt eine Schritt-für-Schritt-Anweisung. Dabei werden folgende Annahmen getroffen:

2.1 Erzeugen der "Master-Installation"

2.1.1 Netzwerkgestützte Installation von Windows 9x

Installieren Sie Windows 9x als ganz gewöhnliche lokale Installation auf einer VFAT-Partition. Windows 95 prüft die Größe der Installationspartition abhängig von den zu installierenden Komponenten, während das Windows 98-Setup gleich wieder aufhört, wenn nicht mindestens 205 MB zur Verfügung stehen. Zum Aufsetzen der Masterinstallation ist eine Partitionsgröße zwischen 500 und 1000 MB empfehlenswert; der Platzbedarf zum späteren Betrieb ergibt sich aus der Größe der Grundinstallation (ca. 30 MB) plus der Auslagerungsdatei (ca. 100 MB). Lassen Sie vorsichtshalber 10-20% mehr Platz auf der Partition.
Wählen Sie alle die Komponenten zur Installation, die irgendwann einmal benötigt werden könnten. Das Hinzufügen von Programmen nach Abschluß der netzgestützten Installation ist zwar möglich, jedoch recht arbeitsintensiv. Verzichten können Sie aber getrost auf die Installation der Internetzugangsdienste, wenn Sie die Internetdienste über das LAN abwickeln.

2.1.1.1 Netzwerkeln

Installieren Sie die Komponenten, die Sie benötigen, um im Real- und Protected Mode auf den Server zugreifen zu können. Bei einem Linux-Server mit Samba ([6]) und Mars ([7]) sind dies neben der Netzwerkkarte der "Client für Microsoft-Netzwerke" sowie die Protokolle TCP/IP, NetBEUI und IPX. Der "Client für Netware-Netzwerke" ist dabei nicht notwendigerweise erforderlich. Näheres zum Herstellen einer Netzverbindung ohne graphische Oberfläche finden Sie unter Herstellen einer Real-Mode-Netzwerkverbindung

Konfigurieren Sie die Station so, wie sie später einmal erscheinen soll. Dabei werden beim späteren Cloning (unter anderem) die IP-Nummer und ggf. der NetBIOS-Name angepaßt werden, die ja beide mindestens LAN-weit eindeutig sein müssen.
Als NetBIOS-Namen sollten Sie vorsichtshalber eine Zeichenkette wählen, die durch ein Script leicht erkenn- und änderbar ist: Als praktikabel und in Hinblick auf künftige Rechnerneuanschaffungen hinreichend offen haben sich Bezeichnungen wie PC001, PC002 usw. erwiesen.
Bei der Verwendung von DNS-Namen sollten Sie hier ebenfalls den NetBIOS-Namen verwenden, um unnötige Anpassungsarbeiten zu vermeiden.
Verwenden Sie einen Linux-Server mit Mars ([7]), sollten Sie gemäß dessen Dokumentation den IPX-Rahmentyp von "Auto" auf "Ethernet II" umstellen. (Für den Real-Mode-Netzwerktreiber ist dies der Eintrag "Frame_Type=2" im Abschnitt "[nwlink$]" in der Konfigurationsdatei %windir%\protocol.ini, der bei der Konfiguration über Systemsteuerung|Netzwerk aber automatisch angepaßt wird.)

Stellen Sie dann persistente Laufwerkzuordnungen wie im nachfolgenden Kapitel angegeben her. Wenn Sie hierfür das Windows-NT-Login-Script verwenden wollen, muß die Datei SHELL.DLL für Windows zu diesem Zeitpunkt erreichbar sein - also lokal erhalten bleiben.

2.1.2 Installation/Konfiguration aller Programme

Verzeichnisbaum des Servers einschließlich der Freigabenamen
  Server-Verzeichnis      Freigabename,
                          Laufwerksmapping
                          (Bemerkung)

  |-Apps                  APPS, F:
  | |-Grafik
  | |-Login
  | |-Office
  | | |-Star
  | | \-MS
  | |   |-7              (MS-Office 95)
  | |   |-8              (MS-Office 97)
  | |   \-9              (MS-Office 2000)
  | |-OS
  | | |-DOS
  | | |-Linux
  | | \-Win
  | |   \-4
  | |     |-0             WIN95, W:
  | |     \-1
  | |       |-0           WIN98, W:
  | |       \-1           WIN98SR, W:
  | |-Text
  | \-Util                UTIL, U:
  |-Bakdir                BAKDIR
  |-Stations
  | |-PC001               PC001, H:
  | |-PC002               PC002, H:
  | | |-Text
  | | | \-WW
  | | |   |-7
  | | |   | \-Vorlagen
  | | |   \-8
  | | |-Tabellen
  | | \-Win
  | |   \-4
  | |     |-0
  | |     | \-Startmenü
  | |     |-1
  | |     | \-Startmenü
  | |     |-Desktop
  | |     |-Recent
  | |     |-Netzwerkumgebung
  
Nachdem die Windows-Grundinstallation lokal vorhanden ist, installieren und konfigurieren Sie alle Anwendungsprogramme, Patches, Dokumentationen, Drucker, etc., die Sie später benutzen möchten. Um das Austauschen neuerer gemeinsamer Dateien durch ältere Versionen zu vermeiden, sollten Sie bei der Installation in etwa in der chronologischen Reihenfolge vorgehen, in der die Programme auf dem Markt erschienen sind. Dies betrifft insbesondere Microsoft-Produkte (Office, Internet Explorer, Visual Basic/C, ...).

Viele Programme lassen sich direkt auf einem Netzlaufwerk (F: als übliche Wurzel des Programmverzeichnisbaumes etwa) installieren. Zu beachten ist allerdings, daß sich manche Patches (SR2 für MSO97 beispielsweise) aus nicht näher angegebenen Gründen nicht auf im Netz installierte Programme anwenden lassen. Für diese Anwendungsfälle und die Programme, die sich nur lokal installieren lassen (MSIE5.0), hilft entweder der Umweg, sie zunächst lokal zu installieren, dann den entsprechenden Verzeichnisast auf ein Netzlaufwerk zu kopieren, die Registrierungsdatenbankeinträge und lnk-Dateien zu ändern und schließlich nach einem Neustart das lokale Verzeichnis zu entfernen. Um die Überwachungsmechanismen von Windows zu umgehen, sollte das Löschen auf der Kommandozeile vor dem GUI-Start stattfinden.
Eine Alternative zu diesem Verfahren stellt SUBST dar, mit dem Laufwerksbuchstaben einem Verzeichnis zugewiesen werden: Mit SUBST C:\TMP\ F: beispielsweise kann das Programm dann unter F: installiert und später unter Beibehaltung der Pfade auf das "richtige" Netzlaufwerk F: verschoben werden. Dies spart die Anpassung der Laufwerks- und Pfadangaben.

Als zweckmäßig hat es sich übrigens erwiesen, die Versionsnummer des Programms mit in den Installationspfad einzubauen (F:\Office\MS\97\ etwa). So lassen sich bei Bedarf auch mehrere Installationen unabhängig voneinander installieren und betreiben. Dies betrifft auch die Verzeichnisse für benutzer- und programmspezifische Dateien: Unter H:\Win\ finden sich die Dateien, die von allen Windows-Versionen (3.x, 4.x, WinNT) benutzt werden können, beispielsweise das Adreßbuch. Unter H:\Win\4\0 sind die Windows 95-spezifischen Daten zu finden (USER.DAT beispielsweise), unter H:\Win\4\1 die für Windows 98. Unter H:\Win\4 können die Dateien abgelegt werden, die nur für die 4.x-Version von Windows Relevanz haben, wie beispielsweise das Recent-Verzeichnis.

2.1.3 Kopieren der fertigen Installation

Wenn die Installation soweit zufriedenstellend funktioniert, kann sie als Arbeitsinstallation ins Netz gestellt werden. Dazu muß fast alles aus dem Windows-Verzeichnis auf ein Netzlaufwerk kopiert werden. Falls Sie dies mit dem Windows-Explorer durchführen, achten Sie darauf, die Auslagerungsdatei WIN386.SWP vom Kopieren auszuschließen, da sonst der Kopiervorgang bei dieser immer geöffneten Datei abbricht.
Die langen Dateinamen müssen bei dem Kopiervorgang erhalten bleiben. Beachten Sie, daß die kurzen Alias-Namen je nach Servertyp unterschiedlich sind, beispielsweise der DOS-Alias zu Programme nun nicht mehr notwendigerweise Progra~1 ist.

Dateien und Verzeichnisse, die von Windows oder Anwendungen zum Beschreiben vorgesehen sind, brauchen Sie natürlich nicht mitzukopieren. Im einzelnen sind dies
lokale Dateien und Verzeichnisse, die nicht in das Windows-Netzverzeichnis gehören
ObjektnameBemerkung
C:\WIN386.SWPWindows-Auslagerungsdatei
%windir%\DESKTOPWindows-Schreibtisch (Verzeichnis)
%windir%\HELPVerzeichnis für Hilfeindices
%windir%\HILFEsiehe %windir%\HELP
%windir%\RECENTVerzeichnis für zuletzt geöffnete Dateien
%windir%\PIFVerzeichnis für DOS-Programmeinstellungen
%windir%\TEMPVerzeichnis für temporäre Dateien
%windir%\SENDTOVerzeichnis für Senden an
%windir%\ShellIconCacheHier puffert Windows die kleinen Bilder (Icons). Diese Datei sollten Sie auf keinen Fall im Windows-Netzlaufwerk ablegen, da die Gefahr besteht, daß Windows sie verwendet und damit irgendwann auf ungültige (veraltete) Iconpfade zugreift.
%windir%\SPOOLSpool-Verzeichnis
%windir%\STARTMENÜ
%windir%\SYSBCKUPVerzeichnis für bei einer Installation ersetzte Systemdateien
%windir%\SYSTEM.DATRegistrierungsdatenbank, maschinenspezifisch
%windir%\USER.DATRegistrierungsdatenbank, benutzerspezifisch
Je nach Geschmack können die Anwendungen, die sich ohne zu fragen in C:\Programme festgesetzt haben, in ein Applikationsverzeichnis (unter F: etwa) oder ebenfalls in das "Windows-Laufwerk" des Servers kopiert werden.

Spätestens jetzt sollten Sie die Benutzerrechte auf den Netzlaufwerken wieder auf das normale Nur-Lesen-Recht zurücksetzen und sich nur bei Bedarf Schreibzugriff geben.

2.1.4 Abspecken der Master-Installation

Nun folgt der eigentlich interessante Teil :-), bei dem - basierend auf Versuch und Irrtum - die lokalen Dateien entfernt und etwaige Referenzen auf die im Netzwerk befindlichen Dateien unter W: bzw. F: umgebogen werden müssen. Der schlechteste Fall, der dabei eintreten kann, ist der, daß nach einem Neustart die Netzwerkverbindung nicht mehr hergestellt werden kann. Wenn dann keine Sicherung der Systemregistrierung vorhanden ist oder nicht mehr bekannt ist, welche Dateien gelöscht wurden, geht es mit Schritt 1 wieder von vorne los. Grundsätzlich empfiehlt es sich daher, vor Änderungen an der Registrierungsdatenbank von deren Dateien %windir%\SYSTEM.DAT und %windir%\USER.DAT eine Sicherheitskopie anzufertigen.
Weiterhin sollten deshalb kritische Dateien (DLL, VXD, DRV) nicht sofort gelöscht, sondern nur lokal verschoben werden. Dabei hat es sich als zweckmäßig erwiesen, unterhalb des entsprechenden Verzeichnisses Verzeichnisse namens ALT1, ALT2, ... zu erstellen, in das die Dateien zunächst verschoben werden.
Übrigens überwacht Windows einige Dateien und aktualisiert in der Registrierungsdatenbank deren Installationspfad, sobald die Dateien verschoben werden. Daher sollten Sie erst die Verweise umbiegen und dann erst die Dateien verschieben bzw. löschen.
Doch der Reihe nach. Beginnen Sie zunächst mit dem

2.1.4.1 Anpassen der Startdateien

Damit Windows die Dateien auf dem Netzlaufwerk auch findet, muß die Pfadangabe entsprechend angepaßt werden, wobei das erste Verzeichnis das sein sollte, in dem sich die meisten benötigten Dateien befinden, um langes Suchen zu vermeiden: SET PATH=W:\SYSTEM;W:\;W:\COMMAND;C:\WINDOWS. Ob die Einträge per "PATH=...", "SET PATH=...", in der AUTOEXEC.BAT oder CONFIG.SYS gesetzt werden, spielt dabei keine Rolle - spätestens bei dem Laden von Windows (WIN.COM) müssen die Suchpfade gesetzt sein.
Bereits hier kann auch der Eintrag BootGUI=0 in C:\MSDOS.SYS gesetzt werden, um das automatische Starten von Windows abzuschalten.
Beispiele für den Inhalt der Startdateien finden Sie in den Listings.

2.1.4.2 Anpassen der Initialisierungsdateien

Obwohl unter Windows 9.x verpönt, werden von manchen Programmen immer noch Initialisierungsdateien (*.INI) verwendet. Der einfachste Weg, Initialisierungsdateien mit lokalen Verweisen zu finden, ist es, ein Suchprogramm auf diese loszulassen (grep o.ä.). Die Dateien WIN.INI, SYSTEM.INI und ODBC*.INI sollten Sie aber auf jeden Fall in Augenschein nehmen.
Beim Ersetzen von Einträgen gilt auch hier, daß nach der Änderung kritischer Einträge (Verweise auf Treiber o.ä.) ein Neustart und dann ein Test der entsprechenden Komponenten durchgeführt werden sollte.

2.1.4.3 Anpassen der Registry

Einige Einstellungen lassen sich zunächst auch ohne direktes Manipulieren der Registrierung vornehmen:
Umgang mit REGEDIT
  • Verwendete Abkürzungen:
    HKCR: HKEY_CLASSES_ROOT
    HKCU: HKEY_CURRENT_USER
    HKLM: HKEY_LOCAL_MACHINE
    HKU: HKEY_USERS
  • Beginnen Sie beim Suchen/Ersetzen stets beim Schlüssel HKLM, um Zeit zu sparen. Die Schlüssel HKCR und HKCU sind nur Aliase auf Einträge, die in HKLM und HKU vorhanden sind.
  • Wenn im Suchtext Pfadangaben vorhanden sind, entfernen Sie die führende Laufwerksangabe. So finden Sie gleichzeitig auch Einträge im UNC-Format.
  • Händisches Suchen und Ersetzen jedes einzelnen Eintrags ist recht aufwendig; ein globales automatisiertes Suchen und Ersetzen aber auch nicht zweckmäßig, da nicht alle Einträge ersetzt werden dürfen, die auf das lokale Laufwerk verweisen. Als praktikabel hat sich der schlüsselweise Export der Einträge erwiesen, die dann mit einem vernünftigen Editor (TextPad beispielsweise) per Suchen und Ersetzen geändert werden.
    Beim Reimportieren dieser Datei ist darauf zu achten, daß geänderte Schlüssel - im Gegensatz zu geänderten Schlüsselwerten - zusätzlich zu den bisherigen eingefügt werden. Daher müssen die alten Schlüssel dann händisch mittels Registrierungsdatenbankeditor gelöscht werden. Ob es einen Registrierungsdatenbankeditor gibt, der dies vernünftig erledigen kann, ist mir nicht bekannt.
  • Gemäß c't 1/2000 S.8 lassen sich über REG-Dateien auch Einträge löschen, indem ein Minuszeichen als Wert angegeben wird:
    Einträge[HKEY...\...]
    @=-
    [HKEY...\...]
    "Name"=-
    ab Windows-Version 4.00.1111:
    Schlüssel[-HKEY...\...]
Nun wird der Griff zum Registrierungsdatenbankeditor fällig: Auf das Netzlaufwerk angepaßt werden können alle Einträge unter HKCR (der übrigens ein Spiegel von HKLM\Software\Classes ist).
Bei den Einträgen der Programme unter HKLM\Software\<Hersteller> muß von Fall zu Fall entschieden werden, wohin ein Registry-Eintrag mit einem Verzeichnis-/Dateiverweis zeigen soll. Temporäre Dateien können auf der lokalen Platte belassen werden, während benutzerspezifische und Programmdateien auf die entsprechenden Netzlaufwerke gelegt werden sollten.
Einträge, die auf die zum Starten erforderlichen Dateien verweisen (Netzwerk- und Grafikkarte, Maus, Tastatur) sollten zunächst unverändert bleiben.
Denken Sie beim Suchen von Datei- oder Verzeichnisnamen auch daran, daß bei der Verwendung nicht DOS-konformer Dateinamen eventuell der kurze DOS-Alias ('PROGRA~1') in der Registrierung eingetragen sein könnte.

Nach der Änderung von kritischen Einträgen sollten Sie einen Windows-Neustart durchführen, um zu prüfen, ob Windows auch tatsächlich mit dieser Änderung zurechtkommt. Dies betrifft insbesondere einige Einträge unter HKLM\Software\Microsoft\Windows\CurrentVersion, die scheinbar schon beim Starten ausgewertet werden, während das Windows-Netzlaufwerk noch gar nicht erreichbar ist...

Die folgenden Vorgehensweise für jede (!) Datei ist die aufwendigste, aber auch die sicherste:

  1. Legen Sie eine Sicherheitskopie der Dateien SYSTEM.DAT und USER.DAT an.
  2. Suchen Sie sich eine beliebige Datei aus der lokalen Windows-Installation aus.
  3. Passen Sie bei allen Fundstellen des Dateinamens in der Registry die Pfadangabe an.
  4. Prüfen Sie, ob die im Netzwerk befindliche Datei nicht vielleicht eine ältere Version ist. Falls ja, kopieren Sie die lokale Datei in das entspechende Netzwerkverzeichnis.
  5. Verschieben Sie die lokale Datei in einen Unterordner namens ALT (falls die Datei in Benutzung ist, nach einem Neustart auf DOS-Ebene).
  6. Bei Dateien, die im Zusammenhang mit der Netzwerk- oder Grafikkartenfunktionalität stehen, sollten Sie Windows neu starten und die korrekte Funktion der Routinen prüfen, die diese Datei(en) benutzen. Aufgrund der heutigen Windows- und Programmdokumentationen ist dies natürlich ein Ratespiel.
Als Beispiel finden Sie hier eine Auflistung der Dateien, die nach dieser Prozedur noch auf der lokalen Platte vorhanden sind bzw. sein müssen.

Bei Registrierungdatenbankeinträgen, die auf die lokale Platte verweisen und nach deren Änderung auf ein Netzlaufwerk Windows nicht mehr startet, können Sie sich mit zwei Registry-Importdateien behelfen: Eine muß lokal vorhanden sein, wird vor dem Windows-Start importiert und setzt die Einstellungen auf das lokale Laufwerk; die andere wird nach dem Herstellen der Netzverbindung importiert (z.B. unter HKLM\Software\Microsoft\Windows\CurrentVersion\run mit dem Kommando "W:\REGEDIT.EXE /S W:\AtNet.reg") und setzt die Einstellungen auf die Netzlaufwerke. Wirkung hat dies allerdings nur, wenn die entsprechenden Einträge von den Programmen zur Laufzeit und nicht nur einmal beim Windows-Start ausgelesen werden.

Sollten Sie beim Start eines Programms eine Fehlermeldung der Art Die erforderliche .DLL-Datei xyz wurde nicht gefunden erhalten, löschen Sie den Eintrag der entsprechenden Datei in der Registrierung unter [HKLM\System\CurrentControlSet\control\SessionManager\KnownDLLs] bzw. Known16DLLs.

2.1.4.4 Anpassen der Programme

Nachdem nun alle Dateien von der lokalen Platte entfernt sind, die nicht unmittelbar zum Systemstart benötigt werden, sollten die einzelnen Applikationen nochmals auf Funktionsfähigkeit geprüft werden. Auch das Zusammenspiel mehrerer Programme über Objekteinbettung sollte dabei berücksichtigt werden. Im einzelnen:

2.2 Kopieren und Anpassen der Master-Installation

Die lokal vorhandene Datenmenge sollte nun auf ca. 30 MB geschrumpft sein, und alle Anwendungen laufen wie gewünscht. Dann sollten Sie diese Konfiguration schnellstens als Kopiervorlage in Sicherheit bringen, beispielsweise nach \\Server\Bakdir.

2.2.1 individuelle Einstellungen verallgemeinern

In den Konfigurationseinstellungen der Kopiervorlage befinden sich nun noch Einträge, die sich auf die spezielle Station beziehen: IP-Nummer, NetBIOS-Name, E-Mail-Adresse, ...). Diese müssen Sie auffinden und durch eine Metaangabe wie etwa "<PCNR>" austauschen, um diese später durch ein Script anpassen zu lassen. Kandidaten für solche individuellen Einstellungen sind die Registry, Initialisierungsdateien und Links.

2.2.1.1 individuelle Einstellungen der Registry

Durchsuchen Sie die Registry nach stationsspezifischen Bezeichnungen, exportieren Sie diese als Textdatei (beispielsweise unter dem Namen ADDREGA.REG (AddRegistryAll)) und ersetzen Sie den stationsabhängigen Text durch die Angabe "<PCNR>".
Schlechtere Karten haben Sie, wenn die benutzerspezifische Daten in einem binärem Registry-Eintrag versteckt sind, denn diese werden beim Suchen mit dem normalen REGEDIT nicht berücksichtigt und sind außerdem schlecht durch ein auf *.REG-Dateien basierendem Programm zu manipulieren. Glücklicherweise ist dieser Fall recht selten (mir ist dies nur irgendwo im Schlüssel HKLM\Software\Microsoft\Windows Messaging Subsystem in Zusammenhang mit dem MS-Exchange-Server untergekommen - das Löschen des Eintrags genügte, und Windows baut zur Laufzeit einen neuen, richtigen Eintrag zusammen).
Beispiel für eine Kopiervorlage für individuelle Registry-Einstellungen
REGEDIT4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ComputerName\ComputerName]
"ComputerName"="PC<PCNR>"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0009]
"IPAddress"="192.168.2.<PCNR>"

2.2.1.2 individuelle Einstellungen der Initialisierungsdateien

Wenn Sie mehrere Rechner mit unterschiedlichen Grafikkarten oder Standarddruckern einrichten, sollten Sie einen Blick in %windir%\WIN.INI werfen und die dortigen Angaben so umgestalten, daß sie durch ein Such-/Ersetzprogramm ([8]) angepaßt werden können.

Damit die Station auch selbst weiß, wer sie ist, kann in der CONFIG.SYS oder AUTOEXEC.BAT ein entsprechender Eintrag gesetzt werden (siehe auch C:\CONFIG.SYS:
...
SET PCNR=pc<PCNR>
...

Weitere Kandidaten für Initialisierungsdateien mit stationsspezifischen Angaben sind die Netscape 4.x-Javascript-Dateien LIPREFS.JS und PREFS.JS. Verfahren Sie damit analog.

2.2.1.3 ungeliebte Links

Es verbleiben Verknüpfungen, die auf ein stationsspezifisches Netzlaufwerk verweisen. Wie bereits erwähnt, speichert Windows in der LNK-Datei unter anderem auch den Namen dieser Freigabe (etwa \\server\pc001). Mir ist weder ein Link-Editor und erst recht kein batchfähiger bekannt. Und die Windows-Hilfe beschreibt auch nicht den binären Aufbau dieser Dateien. ;-)
Da scheinbar keine Prüfsumme (aber die Länge der Zeichenkette) im Link enthalten ist, kann bei der späteren Rekonfiguration der Text "pc001" einfach durch die entsprechende Stationskennung ausgetauscht werden.
Beim serverbasierten Kopieren behelfe ich mir, indem ich den Link binär in zwei Dateien aufteile: Den Teil bis zum "pc001" und den Teil danach. Beim Rekonfigurieren erzeugt dann ein "cat $PCNR >> Link.Teil1 && cat Link.Teil2 >> Link.Teil1 && rm Link.Teil2 && mv Link.Teil1 MyLink.lnk" den gewünschten Link.

Eine Alternative besteht darin, die Zuordnung der individuellen Freigaben dem Server zu überlassen. Unter Samba ([6]) beispielsweise wird ein Zugriff auf \\Server\Homes auf das Home-Verzeichnis des entsprechenden Benutzers umgeleitet.

2.3 Übertragen der Installation

2.3.1 Übertragen der Installation auf baugleiche Rechner

Baugleich ist hier wörtlich zu nehmen: fast alle Komponenten der anderen Geräte, beginnend bei CPU und Mainbord über Grafik- und Netzwerkkarte bis hin zur Maus und dem Monitor müssen derart sein, daß Windows sie immer als dasselbe Gerät erkennt. Darüber hinaus merkt sich Windows in der Registry die Einstellungen zu der entsprechenden Hardware, und bei PCI-Karten auch den Slot, in dem sich eine Karte befindet.
Nicht kritisch sind dagegen bei Festplatten unterschiedliche Hersteller, Partitionsanzahl und deren Größen und bei Arbeitsspeicher dessen Größe.

Das Übertragen der lokalen Installation erfolgt am einfachsten mit der unten beschriebenen Wiederherstellungsroutine. Wollen Sie trotzdem - für einen ersten Test etwa - die Installation 'von Hand' übertragen, können Sie wie folgt vorgehen:

  1. Bauen Sie die HDD mit der abgespeckten lokalen Windows-Installation zusätzlich als primäre HDD in das andere Gerät ein.
  2. Starten Sie Windows und kopieren Sie den gesamten Platteninhalt auf die sekundäre Platte.
  3. Machen Sie die sekundäre Platte startfähig (SYS D:).
  4. Bauen Sie die primäre HDD wieder aus.
  5. Starten Sie Windows, und konfigurieren Sie die Station entsprechend (IP-Adresse, NetBIOS-Name, ...)

2.3.2 Übertragen der Installation auf andere Rechnertypen

Der oben beschriebene Installationsweg braucht nicht für jede PC-Gruppe wiederholt werden, sondern läßt sich erheblich abkürzen, indem die bereits vorhandene abgespeckte lokale Windows-Installation etwas modifiziert wird. Existenziell ist natürlich zunächst die Funktionstüchtigkeit der Netzwerksubsystems: Wenn die zu verwendende Netzwerkkarte eine andere als die in der vorliegenden Installation ist, sollten Sie die Netzwerkkarte zunächst in einen Rechner des bereits funktionierenden Teilnetzes einbauen, die zugehörigen Treiber installieren und sie entsprechend der Gegebenheiten des neuen Rechnertyps konfigurieren (IP-Nummer, ggf. Subnet-Mask, Bindungen, etc.). Hier wird wieder etwas Handarbeit fällig, falls Windows versucht, Dateien auf schreibgeschützen Netzlaufwerken anzulegen oder zu modifizieren.
Sofern sich der hinzuzufügende Rechner in einem anderen Netzwerksegment befindet, sollten Sie nun testweise den Rechner dort anstöpseln und Windows starten, um zu prüfen, ob die Netzwerkkonfiguration in Ordnung ist.
Bei Verwendung einer anderen Grafikkarte sollten Sie auf den kleinsten gemeinsamen Nenner ausweichen, der in 'Super-VGA' mit der Auflösung 640x480 und Flimmermodus (60 Hz) besteht.

Nun kann die Konfiguration auf den neuen Rechner übertragen werden. Am einfachsten ist es, wenn Sie dazu wie oben beschrieben die Festplatte mit der modifizierten Installation zeitweilig als Master in den neuen PC einbauen. Windows wird beim ersten Start die neue Hardware erkennen und selbständig die Treiber dafür installieren. Ist die Station nach den üblichen mehrfachen Windows-Neustarts dann funktionsfähig, kopieren Sie die Installation von der primären auf die sekundäre Platte und klemmen abschließend die primäre Festplatte wieder ab. Nun können die Feinheiten der Konfiguration durchgeführt werden (NetBIOS-Name, Setzen der PC-Nummer, Druckereinstellungen, etc.).


3 Rekonfiguration

Ziel der Rekonfiguration ist es, den Rechner wieder in den Installationszustand zurückzuversetzen. Dies sollte möglichst einfach und schnell geschehen. Für den Fall, daß die nötigen Dateien lokal noch vorhanden sind, kann dies über eine lokale Batchdatei geschehen, die eine Real-Mode-Netzwerkverbindung zum Server herstellt, alle lokalen Dateien löscht, die Originaldateien vom Server auf den lokalen Datenträger kopiert und die stationsspezifischen Einstellungen wie IP-Adresse und NetBIOS-Name setzt.
Falls keine Netzwerkverbindung hergestellt werden kann, müssen die Daten zwangsläufig von einem anderen Datenträger als der lokalen HDD stammen. Dies kann eine Startdiskette oder auch bootfähige CD sein. Die Software auf diesem Datenträger hat die Aufgabe, die lokale HDD zur Aufnahme von Daten vorzubereiten (Partitionieren, Formatieren), und dann wie oben beschrieben die Daten wiederherzustellen.

3.1 Herstellen einer Real-Mode (RM)- Netzwerkverbindung

Zum Herstellen einer RM-Netzwerkverbindung können Sie entweder Fremdprogramme wie den IPX-Stack von Netware verwenden. In diesem Fall entnehmen Sie die Beschreibung eines Aufbaus einer RM-Netzverbindung der entsprechenden Dokumentation und überspringen den Rest dieses Kapitels.
Oder Sie verwenden die in Windows eingebaute Funktionalität mittels des Programms NET.EXE: "net start <Client>" startet den Real-Mode-Client. Danach können Sie mit "net use <Laufwerksbuchstabe> \\<Servername>\<Freigabename>" über den entsprechenden Laufwerksbuchstaben auf die Serverfreigaben zugreifen. Das alles und mehr läßt sich mit "net help" nachlesen.

Sofern Sie als Server Samba ([6]) einsetzen, hilft der Windows-RM-Client allerdings nicht weiter, da Samba ([6]) eine IP-Verbindung voraussetzt. Sie können entweder einen TCP/IP-Stack (z.B. ftp://ftp.microsoft.com/bussys/Clients/LANMAN/) installieren oder - falls das Serversystem etwas Unix-artiges ist - den Netware-Emulator Mars ([7]) parallel zu Samba fahren und die Netzwerkverbindung über IPX herstellen.

3.1.1 RM-Netzwerkverbindung über die lokale Festplatteninstallation

Bei einem normal eingerichteten System sollte eine RM-Netzwerkverbindung mittels NET.EXE üblicherweise auf Anhieb funktionieren; in der Beispielsauflistung sind die dazu erforderlichen Dateien mit Bestandteil Real-Mode Netzwerkstapel gekennzeichnet.

Sollte die RM-Netzwerkverbindung nicht klappen, empfiehlt es sich, zunächst andere Versionen der Kartentreiber zu probieren. So funktioniert beispielsweise bei einer älteren 3C509-Netzwerkkarte der Treiber ELNK3.DOS in der Version 3.1 nicht - die ältere Version 3.0 aus einer Windows 95-Installation dagegen problemlos.

3.1.2 über ein bootfähiges Medium

Ein beliebiges OS wird von einem Wechseldatenträger (CD, Diskette) gestartet (siehe auch Windows auf CD, [3]). Der Einfachheit halber sollte dies dasselbe sein wie das, was auf der lokalen HDD restauriert werden soll - also Windows 95 oder 98. Im weiteren Verlauf sind zwei Verfahren möglich:

Bei dem ersten werden die nötigen Dateien von dem Bootmedium auf die lokale HDD kopiert und ein Neustart ausgelöst. Dabei kann C:\AUTOEXEC.BAT so manipuliert werden, daß nach dem Neustart eine Rekonfiguration durchgeführt wird.
Ein Problem bei dieser Methode besteht darin, daß das Bootmedium die Vorbereitung der lokalen HDD zur Datenaufnahme durchführen muß (Partitionierung, Formatierung). Bei späteren Änderungen dieser Prozedur müssen dann alle Medien angepaßt werden.
Falls Disketten als Startmedium zum Einsatz kommen, ist ein weiterer Nachteil der knappe Platz darauf, trotz etwaiger Komprimierung der zu kopierenden Dateien.

Bei dem zweiten Verfahren wird nach dem Booten ohne Zugriff auf die lokale HDD eine RM-Netzverbindung hergestellt und die Rekonfiguration durchgeführt. Voraussetzung dafür ist natürlich, daß die Batchdatei zur Rekonfiguration auf dem Server abgelegt ist.

In beiden Fällen greift der RM-Client (NET.EXE) auf die Registry zurück, die folglich auf dem Medium vorhanden sein muß. Bei deren üblichen Größen im Megabytebereich ist es problematisch, Disketten als Medium einzusetzen. Bei dem ersten Verfahren kann die Registry komprimiert auf der Diskette vorliegen, da ein Zugriff darauf erst nach dem Neustart stattfindet. Bei dem zweiten Verfahren hilft die

3.1.2.1 Erstellung einer Bootdiskette mit Netzzugriff

Die Lösung des Problems der für eine Diskette zu großen Registry besteht darin, eine reduzierte Registry zu erzeugen, die nur die Daten der Netzwerkkonfiguration enthält und ca. 20 kB groß ist. Voraussetzung für deren Erzeugung ist bei folgender Schritt-für-Schritt-Anweisung ein bereits funktionierender Real-Mode-Net-Zugang einer normalen Windows-Installation.
  1. Startdiskette erstellen
    Erstellen Sie eine gewöhnliche Startdiskette, zum Beispiel mittels des Windows-Explorers oder mit "FORMAT A: /s", und kopieren Sie ggf. weitere erforderliche Dateien (Speichermanager, deutscher Tastaturtreiber, etc.) in das Wurzelverzeichnis der Diskette.
    Kopieren Sie zusätzlich die für den Real-Mode-Netzwerkzugriff benötigten Programme auf die Diskette. Dies sind die Dateien NET.EXE, NET.MSG, NETH.MSG, PROTMAN.EXE, PROTMAN.DOS, NDISHLP.SYS und die Konfigurationsdatei PROTOCOL.INI. Zusätzlich benötigen Sie in demselben Verzeichnis den Kartentreiber, der unter dem Registrierungsschlüssel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Network\Real Mode Net] mit dem Eintrag netcard aufgeführt ist; beispielsweise ist dies für eine 3Com-Netzwerkkarte 3C509 die Datei ELNK3.DOS.
  2. Registry-Netzwerkeinträge exportieren
    Für die "Netzwerk-Registry" müssen zunächst alle Einträge, die mit der Netzwerkkarte, dem Treiber und der Konfiguration zu tun haben, als Text aus der Registry der Windows-Installation mit dem funktionsfähigem Real-Mode-Net exportiert werden. Dies sind die Schlüssel
    [HKEY_LOCAL_MACHINE\Enum\Network]
    [HKEY_LOCAL_MACHINE\Enum\Root\Net]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Network]
    (zwingend erforderlich)
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net]
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetClient]
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetService]
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans]
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\NWLink]
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\NWREDIR]
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VREDIR]

    Einige Einträge dieser Schlüssel können sicherlich weggelassen werden; auch einige Schlüssel selbst sind vielleicht nicht immer erforderlich. Mit den oben angeführten Einträgen funktioniert aber IPX sowie NetBEUI.
    Eine minimale Registrierungdatei für NWREDIR braucht lediglich die Angaben über die nötigen Dateien und die Konfiguration (bevorzugter Server, erstes Netzlaufwerk, etc.) zu enthalten. An der Größe der binären Registry, die bei 8 kB eine untere Grenze zu haben scheint, ändert dies jedoch nichts.
  3. Laufwerks- und verzeichnisangaben anpassen
    Damit die Windows-Programme wissen, wo sie nach der Registrierungsdatenbank suchen müssen, ist deren Pfadangabe in der Datei A:\MSDOS.SYS zwingend notwendig. Dies geschieht wie weiter unten gezeigt. Alle weiteren Einträge können erhalten bleiben oder gelöscht werden.
  4. Registry erzeugen
    Die Registrierungs-Textdatei mit den oben beschriebenen Einträgen können Sie unter reinem DOS (nicht im DOS-Fenster) in eine binäre Registry mit REGEDIT.EXE umwandeln, beispielsweise mit "REGEDIT.EXE /L:A:\system.dat /R:A:\user.dat /C network.reg"
    Dabei wird aus der Textdatei network.reg mit den Registrierungsangaben eine neue binäre Registry im Verzeichnis A:\ erzeugt.

    Die ebenfalls erzeugte Datei USER.DAT ist nicht erforderlich und kann gelöscht werden.

  5. Nacharbeiten
    Falls Sie bereits den ersten Start- und Netzwerkzugriffsversuch mit der Diskette durchgeführt haben, werden Sie sich vielleicht - wie ich - über die Fehlermeldung von PROTMAN.DOS gewundert haben, die Datei PROTOCOL.INI nicht öffnen zu können (der Parameter /VERBOSE zeigt etwas ausführlichere Fehlermeldungen bei NET.EXE). Bisher habe ich nicht ergründen können, wo PROTMAN.DOS die Datei sucht. Da aber die Pfadangabe \LANMAN\PROTOCOL.INI fest codiert in PROTMAN.DOS enthalten ist, legen Sie PROTOCOL.INI eben dorthin - nun sollte der Netzwerktreiber geladen werden.
    Achten Sie ferner darauf, daß NET.EXE aus dem Disketten-Verzeichnis heraus aufgerufen wird, in dem das Programm selbst liegt. (Warum? MS wird's wissen...)
    Abschließende Tests sollten Sie mit im BIOS-Setup abgemeldeter Festplatte durchführen, um sicherzustellen, daß die Programme der Startdiskette nicht doch auf darauf zugreifen. Es ist äußerst hinderlich, dies erst dann festzustellen, wenn der HD-GAU eingetreten ist und kein weiterer Rechner zur Verfügung steht...
Eine Auflistung aller Dateien auf dieser Diskette finden Sie im Anhang.

3.2 Erkennungsdienst

Die Netzwerkverbindung ist nun hergestellt, und alle Utilities und Daten können aus dem Netz geladen werden. Da manche Rekonfigurationsschritte stationsspezifisch sind, muß nun das Rekonfigurationsscript die Stationskennung ermitteln. Falls der Netware-RM-Client eingesetzt wird, ist dies mit der Abfrage der Umgebungsvariablen PSTATION erledigt. Beim MS-Client ist dies schon aufwendiger: Eine Möglichkeit besteht im Aufruf von "NET Config | FIND "Benutzerkennung"" mit dem anschließenden Hineinpfriemeln in eine Umgebungsvariable (siehe auch Dokumentation zu Replace). Falls Mars ([7]) zum Einsatz kommt, besteht eine weitere Möglichkeit darin, mittels einem Magic-Script und dem aufgebohrtem c't-Tool XSet eine von der MAC-Adresse abhängige Umgebungsvariable zu setzen. Bei Interesse kann ich dieses Verfahren hier näher beschreiben.

Im folgenden gehe ich davon aus, daß eine Umgebungsvariable namens PCNR die numerische Kennung der Station (also 001, 002, ...) enthält.

3.3 Partitionieren/Formatieren/Prüfen

Nun sollte getestet werden, ob die lokale HDD in der Lage ist, Daten aufzunehmen. Im einfachsten Fall - falls das Script von der lokalen HDD gestartet wurde - genügt SCANDISK mit den Parametern für eine automatische Korrektur. Im schlechteren Fall - dies ist vermutlich bei einem Start vom bootfähigen Wechselmedium der Fall - muß die HDD neu partitioniert und formatiert werden. Hierzu eignen sich die Mircosoft-Produkte nur bedingt, da sie kaum batchfähig sind. Einfacher ist es, mit einem Diskeditor o.ä. die Partitionstabelle (und ggf. den MBR) direkt zu schreiben und einem Spezialprogramm die entsprechende Partition zu formatieren.

3.4 Löschen

Der nächste Schritt besteht darin, alle lokal gespeicherten Daten (sofern vorhanden) und alle stationsabhängigen im Netz gespeicherten Daten zu löschen. Um die im Netz befindlichen Dateien zu löschen, kann entweder ein Programm wie DELTREE oder XDEL eingesetzt werden. Oder Sie verwenden ein Magic-Script, wie es beispielsweise Samba ([6]) oder Mars ([7]) bieten, um die Dateien serverseitig zu löschen.

Für die lokal vorhandenen Dateien kann natürlich auch ein rekursiv arbeitender Löschbefehl eingesetzt werden, schneller geht allerdings ein Quickformat, womit sich dann auch die oben genannte Prüfung erübrigt. Das Programm SMARTDRV sollten Sie in jedem Falle laden, um den Lösch- und Kopiervorgang zu beschleunigen.

3.5 Kopieren

Nun müssen die Originaldateien wiederhergestellt werden: Falls stationsspezifische Dateien im Netz liegen und der Server Magic-Scripte oder NCOPY unterstützt, können die Dateien direkt auf dem Server kopiert werden. Ansonsten müssen sie mittels XCOPY etwa vom Server zur Station und wieder zum Server gepumpt werden, wobei aber die LFN auf der Strecke bleiben.
Um das Kopieren der Dateien vom Server auf die lokale Platte zu beschleunigen, kann natürlich auch ein komprimiertes Archiv (ca. 7 MB) übertragen und anschließend entpackt werden.

Mit dem SYS-Befehl muß nun die lokale HDD noch startfähig gemacht werden, und die langen Dateinamen (LFN) können beispielsweise mit DOSLFNBK [5] wiederhergestellt werden. Ein echtes Problem tritt auf, wenn die LFN auf dem Server wiederhergestellt werden müssen und Sie weder NCOPY noch Magic-Scripte verwenden. Hierfür ist mir keine Lösung bekannt.

Wenn Ihr Projekt mehrere mögliche Konfigurationen umfaßt (unterschiedliche Rechnergruppen etwa), eignet sich folgendes Verzeichnisschema: Im Serververzeichnis BAKDIR\C\WIN\4\1\ALL befinden sich die Dateien und Verzeichnisse, die für alle Baugruppen auf die Systempartition von Windows 98 müssen. In BAKDIR\C\WIN\4\1\RAUM123 könnten sich die befinden, die nur für die Rechner in Raum 123 erforderlich sind. Schließlich befinden sich in BAKDIR\C\WIN\4\1\PC001 die Dateien und Verzeichnisse, die für die Station PC001 benötigt werden.

3.6 Anpassen

Die Dateien sind lokal wieder vorhanden, allerdings noch nicht auf die Station angepaßt. Da im Kapitel individuelle Einstellungen verallgemeinern die entsprechenden Vorbereitungen bereits durchgeführt worden sind, lassen sich nun mittels eines Such-/Ersetzprogramms [8] die Metaangaben in den Konfigurationsdateien durch den Inhalt der Umgebungsvariablen PCNR leicht austauschen. Ein Beispiel für ein Rekonfigurationsscript finden Sie im Anhang.

Da REGEDIT relativ viel DOS-Speicher benötigt, ist es sicherer, erst den RM-Client aus dem Speicher zu werfen, bevor mit REGEDIT die stationsspezifischen Angaben importiert werden.

Fertig. Nach einem Reboot sollte sich die Station wieder im Originalzustand befinden.


4 Anhang

4.1 Literatur/Verweise

1)Tweak Utils: Diese Sammlung nützlicher Utilities befinden sich bei Windows 98 auf der Installations-CD oder ist unter http://www.microsoft.com/windows/software/powertoy.htm erhältlich.
2)Matthias Withopf: Wachtmeister, Programme unter Windows 95/NT überwacht ausführen - c't 98/14, S. 200 (ftp://ftp.heise.de/pub/ct/listings/ct9814.zip)
3)Hajo Schulz, Tobias Remberg: Letzte Hilfe, Windows von CD-ROM booten - c't 99/11, S. 206
4)Windows 95: Server-basierte Installation, http://www.bildung.hessen.de/anbieter/help/frankf/support/techhilf/w95lan/w95lan2.htm
5)DOSLfnBk - ein Tool zum Sichern der langen Dateinamen: http://www8.pair.com/dmurdoch/programs/
6)Samba - ein Server für Windows-Netze: http://de.samba.org/samba/samba.html
7)Mars - Der Novell-Netware-Emulator für Unix-Systeme: http://www.compu-art.de/mars_nwe/
8)Replace - Ein Programm zum binären Suchen/Ersetzen: http://www.msdatec.de/download.htm#replace
9)Auflistung aller Dateien, die nach dem Abspecken von Windows lokal noch vorhanden sein müssen: http://www.msdatec.de/netwinfl.htm
10)Verkleinern einer Windows 9x-Installation: http://www.annasoft.com/minwin9x.pdf
11)BackMagic NetBoot - kostenloses Programm, das bootfähige Disketten mit Netzwerkunterstützung unter DOS erstellt: http://www.backmagic.de/download/

4.2 Listings

4.2.1 C:\UTIL\REBOOT.COM

Ihnen fehlt das Programm REBOOT.COM? Kein Problem: Erzeugen Sie die Datei REBOOT.DBG mit dem unten angegebenen Inhalt (beachten Sie die leere Zeile am Ende). Rufen Sie dann auf der Kommendozeile den Windows-eigenen Assembler DEBUG auf: "DEBUG < REBOOT.DBG".
Inhalt von REBOOT.DBG
n reboot.com
a 100
CLI
JMP F000:FFF0

rcx
6
w
q

4.2.2 C:\MSDOS.SYS

Beispiel für die Startdatei C:\MSDOS.SYS
[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C

[Options]
logo=1
BootMulti=1
BootGUI=0
Network=1
BootKeys=1
BootDelay=2
BootMenu=0
BootMenuDelay=30

4.2.3 C:\CONFIG.SYS

Beispiel für die Startdatei C:\CONFIG.SYS
set PCNR=001
set OS=WIN95
set path=c:\windows;c:\windows\command;c:\util
set tmp=c:\tmp
set temp=c:\tmp
DEVICE=C:\windows\himem.sys
DEVICE=C:\windows\EMM386.EXE NOEMS RAM=B000-B7FF RAM=cc00-EFFF
FILES=44
DOS=high,UMB
SHELL=C:\WINDOWS\COMMAND.COM C:\windows /E:512 /P
set comspec=c:\WINDOWS\command.com
BREAK=OFF
Country=049,850,C:\WINDOWS\COMMAND\country.sys

4.2.4 C:\AUTOEXEC.BAT

Beispiel für die Startdatei C:\AUTOEXEC.BAT
@echo off
  rem Verhindern, dass ein Anwender Windows mit WIN.COM startet:
if exist c:\windows\win.com ren c:\windows\win.com wincom.
c:
cd \
lh keyb gr,,C:\WINDOWS\COMMAND\keyboard.sys
c:\util\menu.bat

4.2.5 C:\UTIL\NET.BAT

Batchdatei zum Herstellen/Beenden einer RM-Netzverbindung
@echo off
  rem Aufruf mit
  rem   NET.BAT ON [Username]
  rem oder
  rem   NET.BAT OFF

if x%1==xON goto NetOn
if x%1==xOFF goto NetOff
echo Falscher Aufruf (Param '%1' nicht gueltig)
pause
goto ende

:NetOn
if exist %tmp%\net.on goto weiter1
c:
cd \windows
net.exe start nwredir
echo . > %tmp%\net.on
goto weiter1

:NetOff
if not exist %tmp%\net.on goto weiter1
c:
cd \windows
net.exe stop nwredir
net.exe stop nwlink
del %tmp%\net.on
  rem hier gibts keine weiteren Massnahmen
goto ende

:weiter1
if a%2==a goto ende
echo on
shift
call f:\login\logout
call f:\login\login %1 %2 %3 %4 %5 %6 %7 %8 %9
goto ende

:ende

4.2.6 C:\UTIL\MENU.BAT

Beispiel für eine textorientierte Benutzerauswahl (C:\UTIL\MENU.BAT)
@echo off
:beginn
set path=c:\windows;c:\windows\command;c:\util
mode co80
call c:\util\net.bat OFF
  rem einige Registrierungseinstellungen auf C: zurueckbiegen
if exist c:\util\be4gui.reg regedit.exe c:\util\be4gui.reg > NUL
:menu
echo Bitte wählen Sie:
echo ----------------------------------------
if "%OS%"=="WIN95" echo (1) Windows 95 starten
if "%OS%"=="WIN98" echo (1) Windows 98 starten
echo (2) Kommandozeile
echo (3) Linux
echo (4) Originalkonfiguration wiederherstellen
choice /C:1234 /N

if errorlevel==4 goto restore
if errorlevel==3 goto linux
if errorlevel==2 goto cmdln
if errorlevel==1 goto winstart
goto menu

:linux
call c:\util\net.bat ON schueler
go linux
echo Oh, Linux ist nicht gestartet?!
pause
goto beginn

:restore
c:
smartdrv
call c:\util\net.bat ON
  rem Mit RESTORE.BAT werden die lokal und im Netz noetigen Dateien geloescht,
  rem neu kopiert und deren Attribute gesetzt.
rem Dann wird von dort aus ein Reboot eingeleitet. f:\login\restore.bat :neverEnd echo Hups? Es konnte vermutlich keine Netzwerkverbindung hergestellt werden... echo Bitten Sie Ihren Dozenten, die Diskette zur Rekonfiguration zu verwenden. pause goto beginn :winstart c: prompt $P$G echo Einen Moment, bitte... call c:\util\net.bat OFF if exist c:\windows\win.com goto winSchonDa ren c:\windows\wincom. win.com :winSchonDa set path=w:\;w:\system;w:\command;u:\;c:\windows;c:\windows\command;c:\util c:\windows\win.com goto ende :cmdln c: prompt Aufruf des Menüs mit MENU$_$P$G if not exist %tmp%\doskey.on doskey > NUL echo . > %tmp%\doskey.on ECHO Unter welchen Benutzernamen möchten Sie sich anmelden? echo ---------------- echo 1. Schueler echo 2. Lehrer echo 3. freie Namenseingabe echo 4. Nicht am Netz anmelden echo (z)urück zum vorherigen Menü choice /C:1234Z /N if errorlevel==5 goto menu if errorlevel==4 goto ende if errorlevel==3 goto FreeName if errorlevel==2 goto Lehrerlogin if errorlevel==1 goto SchuelerLogin :FreeName call c:\util\NET.BAT ON call f:\login\login goto nachLogin :schuelerLogin call c:\util\NET.BAT ON schueler goto nachlogin :lehrerLogin call c:\util\NET.BAT ON lehrer goto nachlogin :nachlogin if exist l:\%os%\message.txt type l:\%os%\message.txt rem Die nachfolgende Zeile soll verhindern, dass der Benutzer rem Windows durch Eingabe von 'win' startet if exist c:\windows\win.com goto renwincom goto ende :renwincom if exist c:\windows\wincom. del c:\windows\wincom. ren c:\windows\win.com wincom. goto ende :ende

4.2.7 F:\LOGIN\RESTORE.BAT

Beispiel für ein Wiederherstellungsscript (F:\LOGIN\RESTORE.BAT)
@echo off
  rem Diese Batchdatei fuehrt die Wiederherstellung aller lokalen und
  rem Netzwerkdateien durch (Restore). Noetige Voraussetzungen zum Restore:
  rem - die Netzwerktreiber muessen geladen sein
  rem - es muß unter F: eine nicht angemeldete Verbindung zu MARS bestehen
  rem - das Verzeichnis F:\LOGIN muss die noetigen Batches enthalten
  rem - die Variable OS muss passend gesetzt sein (z.Zt. nur 'WIN95' oder
  rem   'WIN98')
  rem - im Wurzelverzeichnis von Laufwerk X: muss das Server-
  rem   Sicherungsverzeichnis erreichbar sein, das im Verzeichnisbaum dem
  rem   Aufbau OS\RAUMNR\C folgt. Dabei ist OS der Inhalt der Variablen %OS%,
  rem   die das Betriebssystem angibt (z.B. 'WIN95'), RAUMNR der Inhalt der
  rem   Variablen %RAUMNR%, die die Raumnummer angibt ('25' bzw. '26') oder
  rem   die feste Zeichenkette ALL für alle Raeume, C ist der Inhalt fuer
  rem   die lokale Platte, H der Inhalt für das maschinenspezifische
  rem   Netzlaufwerk.
  rem - das Novell-DOS-XCOPY.EXE muss auf U:\ (Utilities) vorhanden sein.

  rem Bei Aufruf mit dem Parameter COPY werden die Herstellung der
  rem Netzwerkverbindungen und der Loeschvorgang uebersprungen:
if a%1==aCOPY goto CopyBegin call f:\login\login.bat schueler rem Ab hier gilt das Laufwerksmapping für den Benutzer SCHUELER. rem Gleichzeitig mit der Anmeldung wird ueber ein Mars-Pipe-Script die rem Maschinennummer ermittelt und die Umgebungsvariable PCNR darauf gesetzt. :restore :echo on rem Pruefung, ob alle nötigen Netzlaufwerke vorhanden sind: if not exist u:\*.* goto netErr if not exist x:\*.* goto netErr if not exist z:\*.* goto netErr rem Wenn SMARTDRV.EXE hier geladen wird, laesst sich spaeter der RM-Treiber rem nicht mehr entfernen... rem Benutzte Umgebungsvariablen pruefen: if a%OS%==a goto EnvFalsch if a%pcnr%==a goto EnvFalsch rem Raumnummer setzen: call f:\login\%os%\strmnr.bat if %raumnr%a==a goto EnvFalsch set comspec=z:\command.com x: rem Falls auf C: ein anderes als das Wurzelverzeichnis aktiv ist, gibt es rem Probleme beim Loeschen: cd c:\ rem Windows 95 braucht eine Sonderbehandlung beim Loeschen, da rem es 'FORMAT /AUTOTEST /Q' nicht akzeptiert... :-( goto %OS% :WIN95 scandisk c: /autofix /nosave /nosummary rem Laufwerk c: aufraeumen: attrib -r -h -s c:\*.* /s xdel c:\*.* /S/ALL label c: Win-Platte goto CopyBegin :WIN98 format c: /Q /AUTOTEST /V:Win-Platte goto CopyBegin :CopyBegin rem Die Platte ist leer und bereit, Daten aufzunehmen. Nun werden alle fuer rem das OS spezifische Dateien nach C:\ kopiert. Sofern der Inhalt des zu rem kopierenden Datentraegers in gepackter Form in der Datei PACKED.ARJ rem vorliegt, wird nur diese Datei kopiert und anschliessend auf dem rem lokalen Datenträger entpackt. rem Ansonsten wird der XCOPY-Befehl zum Kopieren aller Dateien verwendet. rem Kopieren von Dateien, die fuer alle lokalen Platten gleich sind: :ACopy if exist X:\%OS%\All\C\packed.arj goto ACopyARJ rem gepackte Datei nicht vorhanden, normales Kopieren... u:\xcopy x:\%OS%\All\c\*.* c:\*.* /S/E/H/R goto RCopy :ACopyARJ echo Nun dauert's ein bissl... u:\xcopy x:\%OS%\All\c\packed.arj c:\*.* /H/R u:\komprim\arj\2_41.dos\arj.exe x -y -a1 c:\packed.arj c:\ del c:\packed.arj goto RCopy rem Nun werden alle fuer das OS und den Raum spezifische Dateien nach C: rem kopiert: :RCopy if exist x:\%os%\R%raumnr%\c\packed.arj goto RCopyARJ rem gepackte Datei nicht vorhanden, normales Kopieren... u:\xcopy x:\%os%\R%raumnr%\c\*.* c:\*.* /S/E/H/R goto SCopy :RCopyARJ u:\xcopy x:\%os%\R%raumnr%\c\packed.arj c:\*.* /H/R u:\komprim\arj\2_41.dos\arj.exe x -y -a1 c:\packed.arj c:\ del c:\packed.arj goto SCopy rem Nun alle fuer das OS, den Raum und die Maschine spezifische Dateien rem nach C: kopieren: :SCopy u:\xcopy x:\%os%\PC%pcnr%\c\*.* c:\*.* /S/E/H/R rem CONFIG.SYS patchen: Dabei werden alle Vorkommen von <PCNR> durch rem den Inhalt der Umgebungsvariablen %PCNR% ausgetauscht. rp "<PCNR>" "%pcnr%" c:\config.sys rem SYSTEM.INI patchen: if %raumnr%==25 rp "<DISPLAYDRVSTR>" "Diamond Stealth 64 Series (Diamond GT)" c:\windows\system.ini if %raumnr%==26 rp "<DISPLAYDRVSTR>" "ATI mach64 PCI (GERMAN) (DirectDraw)" c:\windows\system.ini rp "<PCNR"> "%pcnr%" c:\windows\system.ini rem WIN.INI patchen: if %raumnr%==25 rp "<STANDARDDRUCKER>" "HP DeskJet 660C,HPFDJC02,\\<ABS>LinServ\\prt2501" c:\windows\win.ini if %raumnr%==26 rp "<STANDARDDRUCKER>" "HP LaserJet 6P/6MP-Verbessert,HPBXLA,<ABS>\\LinServ\\prt2601" c:\windows\win.ini rp "<ABS"> "\\" c:\windows\win.ini rem Platte startfähig machen: z: z:\sys z:\ c: rem COMMAND.COM ist bereits in C:\windows attrib -r -h -s c:\COMMAND.COM del C:\COMMAND.COM label c: WINDOWS rem Lange Dateinamen wiederherstellen: c: cd \ doslfnbk c:\ /r rem FONTS-Ordner mit System-Attribut versehen, wichtige Ordner und Dateien rem schreibschuetzen und verstecken: attrib +s c:\windows\fonts attrib +h +r c:\windows attrib +h +r c:\util attrib +h +r c:\recycled attrib +r c:\windows\Desktop\Aktenk~1 attrib +h +r c:\*.* rem Pladde C: fertich rem Laufwerk H: aufraeumen. Dies geschieht durch ein MARS-Pipe-Script rem (y:\netrest), wobei die Ausgabe des rm- und cp-Befehls als Inhalt der rem Datei angezeigt werden. Ein Lesen der Datei bewirkt die Ausführung des rem Scrips. xtype y:\netrest rem Nun muß noch die Registrierungsdatenbank angepasst werden. Da bei rem geladenem Netzwerktreiber der DOS-REGEDIT zuwenig Arbeitsspeicher rem hat (Error accessing the registry), wird die Anpassung der rem Registrierung jetzt von C:\UTIL\RESTREG.BAT durchgefuehrt, das als rem erstes die Netzwerkverbindung trennen sollte und dann mit RP und rem REGEDIT die passenden Eintraege wiederherstellen sollte. C:\UTIL\RESTREG.BAT rem RESTREG.BAT fuehrt einen Neustart durch, d.h., diese Zeile wird nie erreicht echo Fehler in %0 bei der Abarbeitung von C:\UTIL\RESTREG.BAT... pause > nul goto ende :EnvFalsch ECHO Meldung von %0: ECHO Die Umgebungsvariablen %envErr% sind nicht richtig gesetzt! if NOT "%envErr%"=="" set envErr= pause goto ende :netErr echo Meldung von %0: echo Die Netzwerkverbindungen konnten scheinbar nicht hergestellt werden. pause goto ende :ende

4.2.8 C:\UTIL\RESTREG.BAT

Inhalt von C:\UTIL\RESTREG.BAT
@echo off
  rem Diese Stapeldatei wird ausgefuehrt, nachdem alle lokalen und im Netz
  rem befindlichen Dateien wiederhergestellt sind. Die Netzwerkverbindung,
  rem ausgeloest durch das Script MENU.BAT, muss noch bestehen.

  rem Als Umgebungsvariablen muessen RAUMNR, PCNR und OS gesetzt sein.
  rem Die Programme REGEDIT.EXE und RP.EXE muessen ueber die PATH-Angabe
  rem erreichbar sein.
  rem Zur Anpassung werden die Dateien ADDREGA.REG (optional), ADDREGR.REG
  rem (optional) und ADDREGS.REG (optional) im Verzeichnis C:\UTIL\ benoetigt.

  rem Zur Anpassung der Registry wird folgendes Konzept verwendet:

  rem Die Dateien ADDREGA.REG, ADDREGR.REG und ADDREGS.REG -
  rem sofern vorhanden - werden in dieser Reihenfolge mit den
  rem Umgebungsvariablen RAUMNR und PCNR erweitert und dann in die Registry
  rem integriert (A=Alle, R=Raumspezifisch, S=Stationsspezifisch).

  rem Netzwerkverbindung kappen:
set comspec=c:\windows\command.com
c:
cd \util
c:\windows\net.exe stop nwredir /YES
c:\windows\net.exe stop nwlink /YES
  rem Allgemeine Registry-Eintraege importieren:
  rem Die folgende Schleife durchlaeuft die Buchstaben A, R und S:
set n=a
:regPatch
if exist c:\util\addreg%n%.reg rp "<PCNR>" "%pcnr%" c:\util\addreg%n%.reg
if exist c:\util\addreg%n%.reg rp "<RAUMNR>" "%raumnr%" c:\util\addreg%n%.reg
if exist c:\util\addreg%n%.reg regedit c:\util\addreg%n%.reg
echo.
  rem Fehler aufgetreten?
if exist c:\util\addreg%n%.reg if errorlevel==1 goto regFehler
if exist c:\util\addreg%n%.reg del c:\util\addreg%n%.reg
if %n%==s goto hctaPger
if %n%==r set n=s
if %n%==a set n=r
goto regPatch

:regFehler
Echo Beim Importieren der stationsspezifischen Daten in die Registrierungsbank
echo ist ein Fehler aufgetreten!
pause
goto weiter1

:hctaPger
set n=

:weiter1
:reboot
@echo Der Rechner wird nun neu gestartet.
@echo Sollte dies nach einigen Sekunden nicht von selbst geschehen,
@echo halten Sie bitte ALT und STRG gedrueckt und tippen Sie auf ENTF ...
sleep 1
reboot
pause > NUL
goto reboot


:EnvFalsch
ECHO Meldung von %0:
ECHO Die Umgebungsvariablen %missEnv% sind nicht richtig gesetzt!
if NOT "missEnv"=="" set missEnv=
pause
goto ende

:Ende

4.2.9 A:\NWREDIR.REG

Eine minimale Registrierungdatei für den RM-Client NWREDIR.
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Network\Real Mode Net]
"transport"="*nwlink,*netbeui,ndishlp.sys"
"netcard"="elnk3.dos"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\NWREDIR]
"FirstNetworkDrive"=hex:06

4.2.10 Inhaltsverzeichnis Bootdisk mit RM-Netzzugang

Auflistung aller Dateien auf einer Startdiskette, die einen Netzwerkzugriff über eine 3C509-Karte ermöglicht
A:\AUTOEXEC.BATWird von COMMAND.COM beim Start automatisch ausgeführt:
@echo off
lh keyb gr,,a:\keyboard.sys
rem Fuer Netware-kompatible Netze: "net start nwredir"
rem Fuer NetBEUI-Netze: "net start workstation"
A:\CONFIG.SYSKonfigurationsangaben für IO.SYS; u.a. wird hier der Kommandointerpreter bestimmt:
set path=a:\
device=a:\himem.sys
device=a:\emm386.exe noems
dos=high,umb
country=049,850,a:\country.sys
A:\IO.SYSBetriebssystem-Kern; Näheres siehe Windows-Resource-Kit
A:\MSDOS.SYS Konfigurationsdatei für Windows bzw. NET.EXE:
[Paths]
WinDir=A:\
WinBootDir=A:\
HostWinBootDrv=A

[Options]
BootGUI=0
Network=1
A:\LANMAN\PROTOCOL.INI Konfigurationsdatei für PROTMAN.EXE; Angaben über Netzwerkkartentreiber und -protokolle, hier für eine 3Com 3C509-Netzwerkkarte:
[ELNK3$]
DriverName=ELNK3$
IOAddress=0x300

[protman$]
priority=ndishlp$
DriverName=protman$

[ndishlp$]
DriverName=ndishlp$
Bindings=ELNK3$

[data]
version=v4.00.950
netcards=ELNK3$,*PNP80F7

[NETBEUI$]
DriverName=NETBEUI$
sessions=10
ncbs=12
Bindings=ELNK3$
Lanabase=0

[nwlink$]
DriverName=nwlink$
Frame_Type=4
cachesize=0
Bindings=ELNK3$
A:\COMMAND.COMder übliche Kommandozeileninterpreter
A:\COUNTRY.SYSlandesspezifische Ressourcendatei
A:\ELNK3.DOSReal Mode-Netzwerkkartentreiber, abhängig vom Hersteller der Netzwerkkarte
A:\EMM386.EXESpeicherverwaltungsprogramm; nicht unbedingt erforderlich
A:\HIMEM.SYSSpeicherverwaltungsprogramm
A:\IFSHLP.SYSTreiber für installierbare Dateisysteme; wer mit der Fehlermeldung leben kann, kann diese Datei löschen
A:\KEYB.COMTastaturtreiber
A:\KEYBOARD.SYSRessourcendatei für KEYB.COM
A:\NDISHLP.SYSNetzwerkunterstützungsprogramm, wird von PROTMAN.EXE geladen
A:\NET.EXENetzwerkprogramm für den Benutzer; näheres siehe NET.EXE /?
A:\NET.MSGRessourcen für NET.EXE
A:\NETH.MSGRessourcen für NET.EXE
A:\PROTMAN.DOSTreiber für PROTMAN.EXE
A:\PROTMAN.EXEProtokoll-Manager; wird von NET.EXE geladen
A:\SYSTEM.DATverkleinerte binäre Registrierungsdatenbank

Letzte inhaltliche Änderung: 05. Okt 2002Kontakt: