Der Aufwand, Windows 2000 oder Windows XP dem Netzwerk hinzuzufügen ist etwas größer, aber machbar. Zunächst muss entschieden werden, ob Windows 2000/XP auf einer FAT32-Systempartition oder auf einer NTFS-Systempartition installiert werden soll. Da Windows 2000/XP eine Benutzer- und Rechteverwaltung hat, ist nicht mehr jeder Benutzer Administrator wie unter Windows 98, wo jeder alles darf. Wenn FAT32 gewählt wird, wird die Rechteverwaltung zum Teil aufgehoben, d.h. jeder darf überall auf der Festplatte Dateien speichern und verändern. Das spart unter Umständen einiges an Konfigurationsaufwand. Andererseits gibt es dabei auch ein Sicherheitsproblem bezüglich Viren - die dürfen dann auch überall Dateien verändern oder löschen. Bei NTFS achtet Windows 2000/XP dagegen auf die Rechte, die der angemeldete Benutzer hat. Da der angemeldete Benutzer aber nur auf dem Samba-Server existiert, darf der angemeldete Benutzer nur Dateien in seinem Homeverzeichnis speichern.
Hinweis: Von Windows XP gibt es zwei Versionen. Die "Home Edition" kann keiner Domäne beitreten; man kann diese Version auch nicht so konfigurieren, dass man sie wie mit Windows 98 an einer Domäne anmeldet. Windows XP Home Edition ist also für ein Netzwerk völlig unbrauchbar. Nur die Windows XP Professional-Version hat noch alle benötigten Funktionen.
Windows 2000/XP dem Netzwerk hinzufügen bedeutet, dass der Windows-PC der (Samba-) Domäne hinzugefügt werden muss. Auf dem Samba-Server muss deshalb unter anderem ein Maschinen-Account für den Rechner eingerichtet werden. Den Rechner der Domäne hinzufügen muss dann der Samba-Benutzer "root", der die Funktion des Domänenadministrators hat.
Aber zuerst alles der Reihe nach:
Auf dem Server muss mit smbpasswd -a root der Samba-Benutzer "root" erstellt werden. Als Passwort sollte allerdings nicht das tatsächliche root-Passwort verwendet werden - sicher ist sicher. Dieses Passwort wird später benötigt.
Zunächst sollte mit cp /etc/samba/smb.conf /etc/samba/smb.conf.backup ein Backup der Samba-Konfigurationsdatei erstellt werden. In der Konfigurationsdatei sind nämlich einige Änderungen nötig, die aber am Schluss wieder alle rückgängig gemacht werden müssen.
Die erste Änderung betrifft den Benutzer "root". Der muss aus der Liste "invalid users" gelöscht werden und zu "valid users" hinzugefügt werden. Danach muss mit /etc/init.d/samba restart der Samba-Server neugestartet werden.
Dann muss der Maschinen-Account für den Rechner eingerichtet werden. Das sind im Prinzip normale Benutzer; der Benutzername endet allerdings auf ein Dollarzeichen und das Passwort handelt der Windows-Rechner mit dem Samba-Server selbstständig aus. Der Name des Maschinen-Accounts muss mit dem Computernamen des Windows-PCs identisch sein. Außerdem ist es eventuell sinnvoll, für alle Maschinen-Accounts eine extra Linux-Gruppe anzulegen, etwa groupadd windows. Mit useradd -g windows -s /bin/false "RXXX-PCY$" (das Dollarzeichen am Ende und die Anführungszeichen beachten) wird zunächst ein Benutzer unter Linux erstellt und mit smbpasswd -a -m RXXX-PCY wird für Samba der dazugehörige Maschinen-Account erzeugt (hier darf kein Dollarzeichen angegeben werden, das fügt smbpasswd automatisch an).
Jetzt kann der Windows-Rechner gestartet werden. Für die weiteren Schritte muss man als lokaler Administrator eingeloggt sein. Der Windows-Rechner muss genauso heißen, wie der Name des Maschinen-Accounts (ohne das Dollarzeichen).
Das Hinzufügen des Windows-Rechners zur Domäne funktioniert nur dann, wenn erstens der Samba-Server auch als WINS-Server eingetragen ist (das sollte DHCP automatisch machen) und zweitens der Windows-Rechner noch keinerlei Verbindungen zum Samba-Server aufgebaut hat. Aber genau das macht Windows wahrscheinlich schon automatisch; und um das zu verhindern, muss der Samba-Server ein wenig umkonfiguriert werden.
Zuerst wird die IP-Adresse des Windows-Rechners benötigt. Diese bekommt man mit ipconfig /all in der MS-DOS-Eingabeaufforderung heraus. Dann kann auf dem Server mit smbstatus -S überprüft werden, ob diese IP-Adresse in der Liste auftaucht. Wenn ja, dann müssen in /etc/samba/smb.conf die einzelnen Shares (Freigaben) bearbeitet werden. Und zwar muss mit
hosts deny = %ip-adresse%
bei jedem Abschnitt (außer im Abschnitt "[global]") dem Windows-Rechner der Zugriff verboten werden. Dann muss mit /etc/init.d/samba restart der Samba-Server neugestartet werden. Auf dem Windows-Rechner sollte man sich kurz aus- und wieder einloggen. Jetzt sollte ein smbstatus -S auf dem Server keine Verbindungen mehr zu dem Windows-Rechner anzeigen.
Jetzt sind alle Vorbereitungen getroffen. Jetzt unterscheiden sich Windows 2000 und Windows XP geringfügig voneinander. Auf dem Windows-2000-Rechner kommt man mit einem Rechtsklick auf Arbeitsplatz, dann weiter auf Identifikation und auf Eigenschaften zum gewünschten Dialog. Unter Windows XP gelangt man über Rechtsklick auf Arbeitsplatz, dann weiter auf Computername und auf Ändern zum gewünschten Dialog, um die Domäneneigenschaften zu ändern. Hier muss man dann Domäne auswählen und "workgroup" als Domäne eintragen. Danach wird nach einem Benutzernamen und Passwort verlangt. Das ist der Zugang des Domänen-Administrators (nur der darf neue Rechner der Domäne hinzufügen). Bei Samba ist das der im ersten Schritt hinzugefügte Benutzer "root". Nach einiger Zeit sollte dann eine Messagebox auftauchen, mit der Nachricht: "Willkommen in der Domäne workgroup".
Zum Schluss müssen die Änderungen an Samba wieder rückgängig gemacht werden. Mit smbpasswd -x root wird der Benutzer "root" wieder gelöscht. Mit cp /etc/samba/smb.conf.backup /etc/samba/smb.conf (eventuell das Überschreibung bestätigen) wird das Backup der Konfigurationsdatei wieder zurückgespielt. Jetzt noch einmal mit /etc/init.d/samba restart den Samba-Server neustarten. Das war's.
Bei Windows XP Professional ist zum Schluss noch ein Schritt nötig, damit der Login-Vorgang funktioniert. Sehr wahrscheinlich kommt beim Login folgende Fehlermeldung: "Es kann keine Verbindung mit der Domäne hergestellt werden, da der Domänencontroller nicht verfügbar ist bzw. das Computerkonto nicht gefunden werden konnte. Wieder holen Sie den Vorgang später..." Das liegt daran, dass Windows XP versucht, eine verschlüsselte Verbindung zum Samba-Server aufzubauen. Diese Funktion, die "RequireSignOrSeal" heißt, muss deaktiviert werden. Dazu am Windows-XP-Rechner als lokaler Administrator einloggen, dann zur Systemsteuerung in klassischer Ansicht gehen. Dann auf "Verwaltung" und dort auf "Lokale Sicherheitsrichtlinie" doppelklicken. In diesem Fenster auf der linken Seite unterhalb von "Sicherheitseinstellungen/Lokale Richtlinien" die Kategorie "Sicherheitsoptionen" auswählen und in der rechten Seite dann auf die Option "Domänenmitglied: Daten des sicheren Kanals digital verschlüsseln und signieren (immer)" doppelklicken und deaktivieren. Damit sollte auch der Login-Vorgang mit Windows XP problemlos funktionieren.
Zunächst mal eine interessante Samba-Einstellung, die ab Windows NT (also z.B. unter Windows 2000 oder Windows XP) funktioniert:
logon drive = z:
Damit wird das Home-Verzeichnis des eingeloggten Benutzers automatisch mit dem Laufwerk "Z:" verbunden. Der Buchstabe Z ist die Standardeinstellung. Man muss also im Netlogon-Script das Home-Verzeichnis nicht mehr manuell verbinden, sondern könnte einfach "logon drive = h:" verwenden.
Jeder Benutzer unter Windows 2000/XP hat ein Benutzerprofil. In diesem Profil wird für jeden Benutzer extra der Desktop, das Startmenü, die eigenen Dateien gespeichert. Außerdem wird der benutzerspezifische Teil der Windows-Registrierung gespeichert (z.B. Desktop-Hintergrundbild-Einstellungen). "Roaming Profile" bedeutet, dass das Benutzerprofil mit seinem Benutzer den PC wechselt. D.h. es ist egal, auf welchem Rechner sich der Benutzer einloggt, er findet immer seinen Desktop mit seinen Symbolen vor. Das funktioniert folgendermaßen: Beim Einloggen wird das Benutzerprofil vom Server auf die Festplatte des jeweiligen Rechners kopiert und beim Ausloggen wieder zurück auf den Server kopiert. Damit werden alle Änderungen, die der Benutzer gemacht hat, übernommen und gesichert. Der Nachteil ist, dass der Login- bzw. Logout-Vorgang etwas länger dauert. Der entscheidende Vorteil ist aber, dass der Benutzer an jedem Rechner seine gewohnte Arbeitsumgebung vorfindet. Und es kommt beim Einloggen keine Fehlermeldung, dass das Benutzerprofil nicht gefunden werden konnte.
Um für Windows 2000/XP die Benutzerprofile zu aktivieren, ist folgende Samba-Einstellung nötig:
logon path = \\server\%U\profile
Damit wird das Profil im Homverzeichnis des jeweiligen Benutzers gespeichert (das "%U" wird durch den Login-Namen des Benutzers ersetzt). Für Windows 9x gibt es eine entsprechende Option: "logon home". Wenn im Homeverzeichnis des Benutzers noch kein Profil existiert, wird eines beim ersten Login automatisch angelegt.
Ist man allerdings als Admin-User eingeloggt (alle Mitglieder der Gruppe "admin"), dann kann es mit dem automatischen erstellen des Profils Probleme geben. Als Admin-User werden neue Dateien und Verzeichnisse grundsätzlich so angelegt, dass der (Linux-) Benutzer "root" der Eigentümer ist und nicht der Benutzer selber. Das Verzeichnis profile/ im Homeverzeichnis des Benutzer gehört also dem Benutzer nicht selber. Dies kann man entweder unter Linux mit chown Benutzername profile/ korrigieren oder unter Windows (Rechtsklick auf den Ordner, Eigenschaften, ...).
Welche Benutzerprofile auf dem Windows-Rechner existieren, kann man über die Systemsteuerung in klassischer Ansicht, dann System, Erweitert, Benutzerprofile und Einstellungen nachschauen. Die Profile werden ja beim Einloggen auf die Festplatte des Windows-Rechners kopiert. Sie landen im Verzeichnis C:\Dokumente und Einstellungen\%user%\ (%user% ist entsprechend zu ersetzen). Existiert allerdings schon ein lokaler Benutzer mit gleichem Benutzernamen, so heißt der Ordner C:\Dokumente und Einstellungen\%user%.WORKGROUP\.
Da Windows 98 noch kein Multiuser-Betriebssystem ist, war es möglich, die Mozilla-Profil-Datei registry.dat einfach in den entsprechenden Windows-Ordner zu kopieren und alle Benutzer hatten diese Datei dann auch verwendet. Ab Windows 2000 werden die "Anwendungsdaten" für jeden Benutzer individuell in seinem Profil gespeichert. Das Profil, das nach dem Einloggen gültig ist, liegt ja im Verzeichnis C:\Dokumente und Einstellungen\%user%\ und heißt für jeden Benutzer anders. Damit man die Datei trotzdem über das Logon-Script an die richtige Stelle kopieren kann, muss man die Umgebungsvariablen, die Windows setzt, bemühen. So könnte eine entsprechende Zeile in logon.bat so aussehen:
mkdir "%USERPROFILE%\Anwendungsdaten\Mozilla" copy \\server\netlogon\registry.dat "%USERPROFILE%\Anwendungsdaten\Mozilla" /Y
Hier heißt die verwendete Umgebungsvariable "USERPROFILE". Wichtig sind außerdem noch die Anführungszeichen, die nötig sind, da der Pfad zum Benutzerprofil Leerzeichen enthält. Welche Umgebungsvariablen zur Verfügung stehen, erhält man in der Eingabeaufforderung mit dem Befehl set. Ein anderer interessanter Befehl heißt pause. Damit wartet das Logon-Script auf eine Tastatur-Eingabe und das Fenster schließt sich nicht automatisch. Dadurch ist es möglich, eventuelle Fehlermeldungen beim Kopieren etc. zu lesen.