Servergespeicherte Profile mit Windows XP vs. Windows Vista

Figure 1: User Profile.Seit Windows NT werden benutzerspezifische Daten in einem sogenannten Benutzerprofil organisiert. Sinn und Zweck dieser Ablage ist das Zusammenfassen von persönlichen und personalisierten Inhalten in einem eigenen Ordnerzweig, der mittels Dateisystemberechtigungen gegen den Zugriff durch andere Anwender auf dem gleichen Computer geschützt wird. Je nach Installationsart befinden sich die Ordner an unterschiedlichen Stellen:

  • Windows XP Neuinstallation ohne vorheriges OS
    %SYSTEMDRIVE%\Dokumente und Einstellungen
  • Windows XP Upgrade von Windows 2000
    %SYSTEMDRIVE%\Dokumente und Einstellungen
  • Windows XP Upgrade von Windows NT 4.0
    %SYSTEMROOT%\Profile
  • Windows XP Upgrade von Windows 98
    %SYSTEMDRIVE%\Dokumente und Einstellungen

Serverseitige Profile

Die serverseitige Ablage von Benutzerprofilen erlaubt nun Benutzern, sich an unterschiedlichen Computern mit den gleichen Desktopeinstellungen anmelden zu können. Das Profil wird dann jeweils vom Netz auf den lokalen Computer während der Anmeldung heruntergeladen. Da im Profil durchaus größere Datenmengen vorhanden sein können, ist es wichtig zu verstehen, welche der Unterordner auf das Netz zurückgeschrieben werden und welche lokal verbleiben. Deren Inhalte stehen dann nur auf dem lokalen Computer zur Verfügung, auf dem sie erzeugt wurden. Es gibt in Microsoft TechNet einen sehr guten Artikel User Data and Settings Management, welcher den Sinn und Zweck der einzelnen Unterordner eines Benutzerprofiles und das Verhalten beim Einsatz von servergespeicherten Profilen erklärt.

Seit Windows 2000 kann man mittels Ordnerumlenkung über Gruppenrichtlinien zentral Änderungen an der Ablage bestimmter Ordner vornehmen. Diese können aus dem Profil heraus auf einen beliebigen UNC-Pfad umgelenkt werden. Möglich ist das für die Ordner Eigene Dokumente, Eigene Bilder, Anwendungsdaten, Desktop und Startmenü. Mit Windows XP wurden dann diese Ordner mittels IntelliMirror auch offlinefähig. Damit können dieselben Profile nicht nur auf lokalen Computern, auf Terminalservern und auf wechselnden Arbeitsplätzen, sondern auch auf Notebooks genutzt werden.

Eines der am häufigsten auftretenden Probleme rund um serverseitige Benutzerprofile sind eine ungeschickte Ablage- und Freigabestruktur sowie falsche Besitzeigenschaften und falsche Dateisystemberechtigungen. Da die Benutzerprofile persönliche und personalisierte Daten enthalten, müssen sie gegen Zugriffe fremder Benutzer und Angriffe über das Netzwerk besonders geschützt werden. Administratoren sollten deshalb die minimal notwendigen Besitzereigenschaften und Berechtigungen genauestens kennen, damit sie nicht in Probleme mit servergespeicherten Profilen laufen. Dazu gibt es einen eigenen Artikel Security Recommendations for Roaming User Profiles Shared Folders, der die notwendigen Einstellungen genau beschreibt:

Minimale NTFS Berechtigungen für den übergeordneten Ordner von servergespeicherten Profilen

  • Ersteller/Besitzer: Vollzugriff, Nur Unterordner und Dateien
  • Sicherheitsgruppe der Benutzer, die Daten auf Ordner der Freigabe hinterlegen: Ordner auflisten/Inhalte lesen, Erstellen/schreiben - Nur dieser Ordner
  • Administrator: Keine
  • Jeder: Keine
  • Lokales System: Vollzugriff, Dieser Ordner, Unterordner und Dateien

Minimale Freigabeberechtigungen (SMB) für die übergeordnete Freigabe von servergespeicherten Profilen

  • Jeder: Keine
  • Sicherheitsgruppe der Benutzer, die Daten auf Ordner der Freigabe hinterlegen: Vollzugriff

Minimale NTFS Berechtigungen für jeden Ordner von servergespeicherten Profilen

  • %Username%: Vollzugriff, Besitzer des Ordners (!)
  • Lokales System: Vollzugriff
  • Administratoren: Keine
  • Jeder: Keine

Wie man also sehen kann, reicht es bei weitem nicht aus, Benutzern und Administratoren einfach *alle Rechte*, also Vollzugriff zu geben. Wichtig ist, dass Besitzer und Berechtigungen genau passen. Am einfachsten kann man das erreichen, indem man den übergeordneten Ordner von servergespeicherten Profilen mit den richtigen Berechtigungen erzeugt und freigibt. Bei den Benutzern gibt man dann diese Freigabe gefolgt von %USERNAME% als Profilordner an. Somit braucht man nur eine Freigabe für alle Benutzerprofile und Windows legt bei der ersten Benutzung den jeweils benötigten Unterordner automatisch mit den richtigen Berechtigungen und Besitzeigenschaften an. Wer möchte, dass Administratoren trotzdem in die Profilordner hineinschauen können sollen, kann das über die Gruppenrichtlinie Add the Administrator security group to the roaming user profile share zentral einstellen. Voraussetzung dafür ist mindestens Windows 2000 SP2 oder höher.

Wer nicht von vorn anfangen, sondern die bisherige Struktur neu mit den richtigen Berechtigungen und Besitzern versehen möchte, kann das auch sehr einfach nachträglich tun. Voraussetzung ist, dass man sich in einer Kommandozeile im übergeordneten Profilordner befindet. Darunter gibt es jetzt jeweils einen Unterordner pro Benutzer, der genauso heißt, wie der Benutzer. Man kann nun mit Kommandos wie net user, net share, cacls.exe und subinacl.exe über eine einfache for-Schleife alle Benutzer gleichzeitig richtig konfigurieren.

Beispiel: Es gibt einen Order D:\Profiles und darin Unterordner pro Anwender, die so heissen, wie der Loginname des Anwenders. Was muss man tun? 

D:
cd \profiles
for /d %X in (*.*) do net user %X /PROFILEPATH[:Pfad]

Mit dem Einzeiler for... stellt man auf einen Schlag alle Benutzer entsprechend um. Das gleiche Kommando kann dann auch genutzt werden, um die Berechtigungen und die Besitzer der jeweiligen Ordner richtig zu setzen. Der Trick besteht darin, dass während jedes Schleifendurchlaufs sich in der Variable %X der jeweilige Benutzername befindet, den man dann sowohl auf den Ordner (der ja genauso heißt), als auch als Parameter für die Tools benutzen kann. Wer das ganze nicht interaktiv, sondern in einem Batch ausführen möchte, sollte daran denken, vor die Variablen zwei Prozentzeichen zu setzen, also %%X statt %X.

Neuerungen mit Windows Vista

Soweit zu Windows bis zur Version XP. Windows NT und Windows 2000 konnten sich in der Vergangenheit ein gemeinsames Profil gemeinsam teilen (Using User Profiles with Windows). Mit Windows Vista ist das nicht mehr möglich. Hauptgrund ist die veränderte Struktur des Profils. So wurden zum Beispiel die Leerzeichen aus den Ordnernamen entfernt, was das Handling deutlich verbessert. Weiterhin wurden Ordner wie Musik, Videos, etc. aus dem Dokumenteordner ausgegliedert, so dass eine aufgeräumtere und übersichtlichere Struktur entsteht. Damit kann man aber nicht mehr ein und das selbe Profil für Windows XP und Windows Vista gemeinsam nutzen.

Administratoren müssen sich also vor der Migration auf Windows Vista Gedanken um die Profilablage machen. Wie immer ist es eine gute Idee, nicht Versuch & Irrtum die Migration bestimmen zu lassen, sondern von Anfang an sauber zu planen. Lesenswert dazu sind vor allem die Windows Vista Step-by-Step Guides for IT Professionals und daraus für das Thema servergespeicherte Profile vor allem das Managing Roaming User Data Deployment Guide.

Windows Vista bringt also eine komplett geänderte Struktur in die Profilordner. Um Probleme mit alten Profilen zu vermeiden, wurde ein Versionierung eingeführt. Alle Profile vor Windows Vista sind Version 1, Windows Vista basierende Profile heissen Version 2. Sie erhalten automatisch als Ordnernamen den Benutzernamen mit einer angehängten Endung ".v2". Das bedeutet: Der Profilpfad im Benutzerobjekt bleibt gleich. Anstatt %USERNAME% wird %USERNAME%.v2 verwendet. Der Pfad als solcher darf aber nicht manuell um das .v2 verändert werden. Dort muss weiterhin \\<server>\<freigabe>\%USERNAME% stehen.

Insbesondere die Verwendung von jeweils einzelnen Freigaben für jedes einzelne Benutzerprofil gehen damit nicht mehr. Schon lange lautet ja die Empfehlung, von "versteckten" Freigaben mit angehängtem "$" je Profilfreigaben wegzugehen. Seit Windows 2000 kann man den übergeordneten Ordner freigeben und den Unterordner pro Benutzer verwenden. Also anstatt \\<server>\<%USERNAME%_Profil> ist die Verwendung von \\<server>\<freigabe>\%USERNAME% ratsam. Da aufgrund der geforderten Besitzer und Berechtigungsvergabe (siehe oben) nur der Benutzer selbst und eventuell die Administratoren (wenn es mittels Gruppenrichtlinie so konfiguriert wurde) auf das Benutzerprofil Zugriff haben, kann auch kein weiterer Benutzer, der sich mit der Profilfreigabe manuell verbindet und die Ordner der anderen Benutzer "sieht", auf die persönlichen und personalisierten Daten anderer Benutzer zugreifen.

Wer allein die Möglichkeit des "Sehens" von Ordnern, auf die man keine Berechtigungen hat, verhindern möchte, kann ab Windows Server 2003 SP1 zu Access Based Enumeration (ABE) greifen. Mittels ABE "sehen" Benutzer über das Netzwerk nur noch Ordner, auf die sie auch zumindest Leseberechtigungen haben. Alle anderen Ordner werden nicht angezeigt. Gerade von Administratoren, die früher mit Novell-Netzwerken gearbeitet haben, suchten in der Regel diese Funktion bei Windows-Netzwerken, da sie das Verhalten in ihren früheren Umgebungen gewohnt waren.

Best Practices

Für Administratoren, die Benutzer unterstützten möchten, welche sich wechselnd an Windows Vista und Windows XP Clientcomputern anmelden, gibt Microsoft einige Empfehlungen als Best Practices. Eine zentrale Ordnerumlenkung sollte zum Beispiel nur für Ordner genutzt werden, die von Windows Vista und Windows XP gemeinsam benutzt werden können. Das umfasst die Ordner Eigene Dateien, Eigene Bilder und den Desktop. Nur für Windows Vista Clients sollte zusätzlich die Ordnerumlenkung für Ordner genutzt werden, die unter Windows XP als eigene Ordner existieren. Hier kann im Windows Vista Profil der jeweilige Ordner direkt auf die serverseitige Ablage des Windows XP Profils umgelenkt werden, wenn man dieselben Inhalte auf beiden Windowsversionen nutzen möchte.

Beispiel:

  • Favorites: \\<server>\<freigabe>\%username%\Favoriten
  • Startmenu: \\<server>\<freigabe>\%username%\Startmenü
  • ApplicationData(Roaming): \\<server>\<freigabe>\%username%\Anwendungsdaten

Einige Verzeichnisse innerhalb des Windows Vista Profiles wie die Ordner Kontakte und Download gibt es jedoch nicht in v1-Profilen früherer Windowsversionen. Diese Ordner sollten im Windows Vista Profil verbleiben oder mittels Ordnerumlenkung an alternative Ablageorte verlegt werden. Die Ordner Musik, Bilder und Videos wiederum existieren auch (mit anderem Namen) in Windows XP. Diese Ordner können über ”Follow Documents” mit umgelenkt werden oder direkt in das Windows XP Profil verwiesen werden.