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.
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").
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 Originalkonfiguration (alle lokal erforderlichen Dateien belegen ungepackt unter 30 MB; gepackt ca. 8 MB) läßt sich zumeist vom Benutzer selbst in wenigen Minuten wiederherstellen.
Alle Programme und deren Einstellungen sind einheitlich.
Änderungen in der Konfiguration können zumeist zentral an einer Stelle durchgeführt werden; die "Turnschuh-Administration" individuell an jedem Rechner entfällt.
Einige Programminstallationen brauchen nur an einer Station durchgeführt werden; sie lassen sich dann per automatischem Registry-Import auf alle Stationen verteilen.
Sie entgehen der "DLL-Hölle": alle lokal vorhandenen Dateien befinden sich auch auf einem schreibgeschützten Nezlaufwerk. Ein einfaches fc (file compare) entlarvt die durch Installationsprogramme lokal ausgetauschten Dateien.
Die Benutzer können alles ausprobieren, selbst ein FDISK oder FORMAT C: - es gibt keine erzwungenen Beschränkungen.
Wenn das System läuft, reduzieren sich die Administratortätigkeiten auf Druckerpapier nachlegen und ähnliche Pflegearbeiten.
Die Nachteile seien aber nicht verschwiegen:
Der Arbeitsaufwand der Gesamtinstallation ist erheblich (ca. 50 Stunden)
Das Netzwerk muß endlich richtig arbeiten; meinen Erfahrungen nach ist aber für 10 bis 20 Stationen ein 10 MBit-Ethernet-Segment bereits ausreichend.
Einige Programme und Windows-Komponenten funktionieren nicht richtig (siehe die Bug-List). Dies betrifft aber zumeist selten benutzte Features, die sich bei entsprechendem Aufwand meist korrigieren lassen.
Einige nachträgliche Programminstallationen kommen einer Betriebssystem-Neuinstallation gleich oder sind gar nicht mehr möglich (insbesondere MS-Produkte wie Office oder Internet Explorer).
Die Clients sind ohne Serveranbindung nicht benutzbar.
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).
Für diejenigen, die immer noch interessiert sind, folgt eine Schritt-für-Schritt-Anweisung. Dabei werden folgende Annahmen getroffen:
Wenn das Client-Betriebssystem nicht weiter angegeben ist, gilt die entsprechende Aussage für Windows 95 (4.0.x) und Windows 98 (4.1.x).
Was als Server-Betriebssystem verwendet wird, spielt zunächst keine Rolle - es sollte mit Linux (Samba ([6]) und Mars ([7])), Novell Netware, OS/2-Warp Server oder Windows NT als Server funktionieren. Voraussetzung ist jedoch, daß LFN (lange Dateinamen) unterstützt werden.
Die gemeinsame schreibgeschützte Windowsinstallation wird bei den Clients auf das Laufwerk W: (wie Windows) gemappt.
Für jeden Benutzer ist eine individuelle, beschreibbare Server-Freigabe vorhanden, die beim Client auf Laufwerk H: (Home) gelegt ist. (Die maschinenspezifischen Daten liegen lokal vor.)
Alle Anwendungen sind unter dem Netzlaufwerk F: auffindbar.
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.
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.
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.
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
Objektname
Bemerkung
C:\WIN386.SWP
Windows-Auslagerungsdatei
%windir%\DESKTOP
Windows-Schreibtisch (Verzeichnis)
%windir%\HELP
Verzeichnis für Hilfeindices
%windir%\HILFE
siehe %windir%\HELP
%windir%\RECENT
Verzeichnis für zuletzt geöffnete Dateien
%windir%\PIF
Verzeichnis für DOS-Programmeinstellungen
%windir%\TEMP
Verzeichnis für temporäre Dateien
%windir%\SENDTO
Verzeichnis für Senden an
%windir%\ShellIconCache
Hier 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%\SPOOL
Spool-Verzeichnis
%windir%\STARTMENÜ
%windir%\SYSBCKUP
Verzeichnis für bei einer Installation ersetzte Systemdateien
%windir%\SYSTEM.DAT
Registrierungsdatenbank, maschinenspezifisch
%windir%\USER.DAT
Registrierungsdatenbank, 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.
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
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.
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.
Einige Einstellungen lassen sich zunächst auch ohne direktes Manipulieren der Registrierung vornehmen:
Kopieren Sie die entsprechenden Verzeichnisse auf das benutzerspezifische Netzlaufwerk und passen Sie mit den TweakUtils ([1]) folgende Einträge an:
"Start Menu" Sofern der Server LFN unterstützt, können die Einträge des Startmenüs auf das benutzer- oder maschinenspezifische Netzlaufwerk ausgelagert werden. Die Vorteile liegen darin, daß sich dann Änderungen daran zentral vornehmen lassen. Desweiteren entfallen Probleme mit allzulangen DOS-Zugriffspfaden, wenn diese Verzeichnisse und Dateien vom Server selbst wiederhergestellt werden können (via Pipe-Dateisystem oder NCOPY etwa).
"Dektop" In Schulungsumgebungen habe ich davon abgesehen, diesen Ordner auf ein Wechsellaufwerk zu legen, da Windows auf diesen keinen Papierkorb unterstützt.
"Document Templates" sollte auf das Verzeichnis der schreibgeschützten Netzinstallation verweisen (W:\SHELLNEW).
"Favorites", "My Documents", "Recent Documents" sowie "Send to" sind ebenfalls Kandidaten für das benutzer- oder maschinenspezifische Netzlaufwerk.
Fertig. Nach einem Windows-Neustart können die entsprechenden lokalen Ordner gelöscht werden.
Schriftarten Bis auf die Schriftart "Marlett", in der die Fenstersymbole enthalten sind, lassen sich alle Vektorschriftarten (TrueType, *.TTF-Dateien) auslagern; lokal verbleibt dann je Schriftart eine ca. 1 kB große *.FOT-Datei: Dazu sind alle Vektorschriftarten in "Systemsteuerung|Schriftarten" zu löschen und neu aus dem Netz zu installieren (W:\FONTS für die windowseigenen Schriftarten bzw. das entsprechende Applikationsverzeichnis), wobei das Ankreuzfeld "Schriftarten in den Schriftarten-Ordner kopieren" deaktiviert werden muß. Die Matrixschriftarten (*.FON) lassen sich nicht als Verweis installieren und müssen lokal erhalten bleiben. Einige dieser werden aber nie benötigt ("... for the IBM 8514" bei einer handelsüblichen Grafikkarte :-) und können daher problemlos gelöscht werden.
Bei Problemen mit Schriftarten empfiehlt es sich, die Einträge des Registrierungsschlüssel HKLM\Software\Microsoft\Windows\CurrentVersion\Fonts zu prüfen und weiterhin, den Systemstart protokollieren zu lassen und die Datei C:\BOOTLOG.LOG durchzusehen. Welche Dateien tatsächlich in dem Verzeichnis %windir%\FONTS vorhanden sind, zeigt nur ein Dateimanager ohne Shell-Erweiterungen ("DIR" auf der Kommandozeile gehört dazu:-).
Anwendungsspezifisch Da die Anwendungen nun auf einem Netzlaufwerk liegen, sollten diese bei einem Test auf Funktionstüchtigkeit auch gleich passend auf die künftigen Verzeichnisse eingestellt werden. Für variable Benutzer- und Konfigurationsdaten kann hier ein Verzeichnis auf dem benutzerspezifischen Laufwerk H: gewählt werden. Je nach Programminstallation ist es auch hier zweckmäßig, die Versionsnummer des Programms mit in den Pfad einzubauen, um mehrere Programmversionen gleichzeitig fahren zu können. Für Winword in den Versionen 7 (Office 95) und 8 (Office 97) könnten dies etwa die Verzeichnisse H:\Text\WW\7\ und H:\Text\WW\8\ sein. Übrigens wandelt nicht nur Winword 8 Netzlaufwerksangaben selbständig und ungefragt in das UNC-Format um, d.h. aus H:\Text\WW\8\ wird \\Server\Freigabe\Text\WW\8\. Für das spätere Clonen sind UNC-Angaben aber denkbar ungeeignet und sollten händisch in der Registrierung wieder auf die Angabe mit dem Laufwerksbuchstaben zurückgesetzt werden.
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:
Legen Sie eine Sicherheitskopie der Dateien SYSTEM.DAT und USER.DAT an.
Suchen Sie sich eine beliebige Datei aus der lokalen Windows-Installation aus.
Passen Sie bei allen Fundstellen des Dateinamens in der Registry die Pfadangabe an.
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.
Verschieben Sie die lokale Datei in einen Unterordner namens ALT (falls die Datei in Benutzung ist, nach einem Neustart auf DOS-Ebene).
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.
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:
Access Access 7.0/8.0 benötigt die Datei SHELL32.DLL, wobei es nicht genügt, diese in ein Verzeichnis zu legen, das im Suchpfad enthalten ist. Entweder Sie legen sie ins lokale Windows-System-Verzeichnis oder in das Netzverzeichnis, in dem sich MSACCESS.EXE befindet. Desweiteren wird aus unerfindlichen Gründen Schreibzugriff in dem Verzeichnis benötigt, in dem sich die Assistentendateien WZMAIN80.MDW und WZTOOL80.MDW befinden. Glücklicherweise sind diese Schreibzugriffe multiuserfähig, und so kann dafür ein gemeinsames, nicht schreibgeschütztes Verzeichnis erstellt werden (F:\Office\MS\97\Workdir zum Beispiel), in dem sich Duplikate der benötigten Dateien befinden; ggf. können diese täglich per cron-Job erneuert werden. Die Pfadangaben zum neuen Fundort können Access allerdings nur per Griff zum Registry-Editor mitgeteilt werden. Desweiteren besteht Access auf der Existenz der Datei MFCANS32.DLL in %windir%\system.
Visual Basic 6.0 Die XML-Datei HHCOLREG.DAT für die Dokumentation muß sich zwingend im lokalen Verzeichnis %WINDIR%\HELP befinden.
Word In Word können unter Extras|Optionen|Dateiablage problemlos die Pfade zu den benutzerspezifischen Dateien (H:\Text\WW\8\Benutzer.dic etwa) geändert werden. Leider verwandelt Word dann jeden Bezug auf ein Netzlaufwerk ins UNC-Format (\\Server\\PCxxx\WW\8\Benutzer.dic). Für das spätere Clonen ist dies unbrauchbar, und so können Sie entweder dieses Verhalten auszuschalten (siehe http://www.winfaq.de/faq_html/Tip0581.htm) oder Sie müssen diese Pfadangaben händisch per Registrierungseditor wieder auf die Variante mit dem Laufwerksbuchstaben zurücksetzen.
Verknüpfungen Man mag es glauben oder nicht: In einer Verknüpfung mit einer Datei oder einem Verzeichnis werden in der Verknüpfung (LNK-Datei) ebenfalls Daten wie Name des Datenträgers oder die UNC-Bezeichnung des Servers abgelegt. Stimmt bei einer Verknüpfung mit einem Netzlaufwerk der Servername und Laufwerksbuchstabe nicht mit dem aktuellen Mapping überein, führt Windows still und heimlich ein weiteres Mapping mit einem noch freien Laufwerksbuchstaben zu diesem Server durch. Ist der Server nicht erreichbar (vielleicht hat sich auch nur der Name geändert), erfolgt der Zugriff über den im Link angegebenen Lauferksbuchstaben - allerdings erst nach einem Timeout von einigen Sekunden. Richtig häßlich wird es, wenn der Verweis auf die individuelle Netzwerkfreigabe H: zeigt: Dann ist im Link die Angabe \\Server\PCxxx gespeichert, und alle später geclonten Stationen greifen auf dieselbe Freigabe zu. Dieses Problem wird später gelöst werden.
Zunächst genügt es, diejenigen Links zu ändern oder zu aktualisieren, die auf Anwendungen (F:) oder die Windows-Installation (W:) zeigen. Anmerkung:Programme zum Entfernen der UNC-Bezeichnung:
Windows 95-CD\APPTOOLS\ENVVARS\SHORTCUT.EXE
http://www.coffeecomputing.com/free/scut11.zip
Alternativ kann der Schlüssel [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "LinkResolveIgnoreLinkInfo"=dword:00000001 gesetzt werden, um das Abspeichern im UNC-Format zu verhindern.
Backup von Windows 98 Das Programm versucht sofort beim Starten, im Installationsverzeichnis Dateien und Verzeichnisse anzulegen, die sich auf die individuelle Station beziehen. Für einen Multiusereinsatz ist dies denkbar ungünstig. Bislang habe ich keinen Weg gefunden, dem Programm ein anderes Verzeichnis zum Schreiben anzubieten oder das Problem zu umgehen. Unbrauchbar.
Cliparts aus dem MS-Office Die Indexdatei ARTGALRY.CAG muß sich zwingend in %windir% befinden; die Grafiken selbst können sich aber auf einem Netzlaufwerk befinden.
Kurze Dateinamen Einige MS-Programme (Paint, Exchange, WordPad, ...) scheinen auf kurzen Dateinamen zu bestehen und vermerken diese nach jedem Programmstart in der Registry sowie in WIN.INI. Sofern Sie den Samba-Server ([6]) einsetzen und diesen irgendwann durch eine neuere Version ersetzen, kann es passieren, daß sich die die kurzen DOS-Alias-Namen ändern, die ja vom Samba-Server ([6]) geliefert werden. Weniger Arbeit haben Sie, wenn Sie gleich kurze Dateinamen auf dem Server verwenden oder 8.3-konforme Links auf die langen Dateinamen setzen (PROGRA~1 -> Programme), sofern das Server-OS dies unterstützt.
Hilfe-Indizes Beim Aufruf des Registers Suchen einer Hilfedatei versucht Windows, die Hilfeindexdatei *.GID im entsprechenden Verzeichnis oder in %windir%\HELP zu öffnen. Ist diese nicht vorhanden, wird eine neue Indexdatei angelegt. Sofern das Verzeichnis mit der Hilfedatei (*.HLP) schreibgeschützt ist, wird die Indexdatei in %windir%\HELP abgelegt. Für ein verregnetes Wochenende bietet sich folgende Tätigkeit an: Um die Installation überall gleich aussehen zu lassen, können Sie sich Schreibrecht auf den Netzlaufwerken geben und dann die Indexdateien durch Aufruf der Hilfedateien und Auswahl des Registers Suchen dort erzeugen lassen.
Schnellansicht Die Programme, die eine Datei mit der Schnellansicht anzeigen, befinden sich in %windir%\SYSTEM\VIEWERS\. Die Datei QUIKVIEW.EXE muß auf jeden Fall lokal erhalten bleiben; wenn Sie die DLLs nach W:\SYSTEM\VIEWERS\verschieben, wird die Schnellansicht nicht mehr funktionieren, da dieses DLLs nicht mehr gefunden werden. Abhilfe: Enweder nehmen Sie den Pfad in den Suchpfad mit auf oder - m.E. die bessere Lösung - verschieben Sie die DLLs in ein Verzeichnis, das im Suchpfad enthalten ist, beispielsweise nach W:\SYSTEM\
Verzeichnisse mit System-Attribut Dies sind u.a. die, in denen sich eine Datei namens DESKTOP.INI befindet. Wenn Sie ein solches Verzeichnis ins Netz legen, muß das Attribut erhalten bleiben, damit die Programme, die diese Verzeichnisse benutzen (gibt es neben Windows selbst und dem Internet-Explorer noch eines?), ihre volle Funktionalität behalten. Benutzer von Samba ([6]) leiden hier erneut: das System-Attribut wird für Netzlaufwerke nicht unterstützt. Allerdings genügt eine Handvoll Programmzeilen im Quelltext, die Pfade, für die ein System-Attribut zurückgegeben werden soll, in Samba zu verankern (little dirty hack, but faaast ;-):
Auszug aus samba/2/2/1.patched/source/smbd/dosmode.c (zusätzliche Zeilen sind fett hervorgehoben)
if (S_ISDIR(sbuf->st_mode)) { result = aDIR | (result & aRONLY);
if (strcasecmp(path,"WIN/Favoriten") == 0) result |= aSYSTEM; else if (strcasecmp(path,"DFUE/IE/VERLAUF") == 0) result |= aSYSTEM;
}
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.
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.
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
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.
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.
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:
Bauen Sie die HDD mit der abgespeckten lokalen Windows-Installation zusätzlich als primäre HDD in das andere Gerät ein.
Starten Sie Windows und kopieren Sie den gesamten Platteninhalt auf die sekundäre Platte.
Machen Sie die sekundäre Platte startfähig (SYS D:).
Bauen Sie die primäre HDD wieder aus.
Starten Sie Windows, und konfigurieren Sie die Station entsprechend (IP-Adresse, NetBIOS-Name, ...)
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.).
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.
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.
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.
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
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.
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.
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.
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.
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.
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...
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.
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.
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.
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.
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.
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".
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
@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
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
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
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
@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
Auflistung aller Dateien auf einer Startdiskette, die einen Netzwerkzugriff über eine 3C509-Karte ermöglicht
A:\AUTOEXEC.BAT
Wird 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.SYS
Konfigurationsangaben 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