Univention Bugzilla – Bug 27364
Schüler WindowsXP Profil wird nicht geschrieben, Logout langsam
Last modified: 2016-10-24 15:33:06 CEST
Aus einem ucs-school-singlemaster mit zwei gejointen Windows Clients (win7+xp) wird für den Schüler beim Logout kein Profil auf den Server geschrieben. Beim Logout von Schüler öffnet sich aus ein Fortschrittsfenster, in dem zu sehen ist, dass zusätzlich zum Profil des Schülers auch das Profil eines Lehrer-Kontos synchronisiert wird. Im log.smbd sieht man einige NT_STATUS_ACCESS_DENIED Meldungen, die anscheinend aus Zugriffsversuchen auf Lehrer-spezifische Verzeichnisse resultieren. Das Verlaufsfenster am WindowsXP-Client zeigt hingegen Erfolg für beide Synchronisationsvorgänge an. Beim Logout des Lehrers zeigt sich clientseitig das gleiche Verhalten, allerdings sich auf dem Server (wenigstens ein mal) Profiledaten gespeichert worden.
Created attachment 4416 [details] log.smbd von XP logon+logoff von schueler1 gegen DC "single"
Created attachment 4417 [details] ls -lr auf die Profileverzeichnisse von schueler1 und lehrer1
Ggf. ändert sich das Verhalten durch Bug #27372?
Tritt auch in einer UCS@School 3.0 Samba4 Slave DC Domäne auf. Profile von lehrer1 und schueler1 wurden nach initialem Login/Logout an XP nicht geschrieben, beim Logout von schuelers wurden laut Fortschrittsanzeige beide Profile synchronisiert. Nach wiederholten Login/Logout war das "default"Profil des Schuelers geschrieben, aber nicht das des Lehrers. Windows7/default.V2 verhält sich hingegen ok.
Created attachment 4481 [details] log.diff ist ein Diff von log.good und log.bad ohne die timestamps. Mit dem Logonscript user14.vbs.good treten die Probleme nicht auf. Das Verhalten scheint durch folgende Aufrufe in den UCS@school user logon Skripten getriggert zu werden: objReg.SetStringValue(HKEY_CURRENT_USER, strKeyPath2, "Personal", strPersonal) wobei strKeyPath2="Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" strPersonal="I:\Eigene Dateien" Wenn man bei einem neuen Benutzer die vier Aufrufe dieser Art auskommentiert (für "Eigene Dateien" und "Eigene Dateien\Eigene Bilder", jeweils für "Shell Folders" und "User Shell Folders"), dann ist das Logoff-Verhalten normal. Wenn man hingegen einen dieser Aufrufe wieder aktiviert, dann treten die delays auf, Windows zeigt das Fenster mit dem Synchronisationsfortschritt, und das Profil wird auch bei anschließenden logoffs von anderen Benutzern versucht zu schreiben (wobei man dann ein paar NT_STATUS_ACCESS_DENIED Meldungen im log findet, aber Windows trotzdem am Ende einen erfolgreichen Abschluss der Synchronisationen meldet..). In log.bad sieht man z.B. folgende Zeitlücke: > [2012/05/30 03:41:35.655452, 5] lib/util.c:627(show_msg) > > [2012/05/30 03:41:41.889288, 10] lib/util_sock.c:731(read_smb_length_return_keepalive NT-ACLs und fACLs von "Eigene Dateien" sind genauso wie in windows-profiles/default. Eine Test mit einer UNC strPersonal="\\single\user14\Eigene Dateien" statt I:/Eigene Dateien brachte (bei einem neuen Benutzer) keine Verhaltensänderung.
Benutzerprofile werden geschrieben, es geht hier um die Verlangsamung des Logoff-Prozesses: Windows XP schaltete in den Tests beim Domänen Join "Offline Folders" an (Explorer>Extras>Ordneroptionen>Offlinedaten). Offline Folders sind dann für alle Benutzer aktiviert, die sich auf dem System anmelden. Durch die UCS@ school BenutzerLogonskripte werden in der Funktion "SetMyShares" Registry-Schlüssel angepasst, um die Orte "Eigene Dateien" und "Eigene Bilder" mit den entsprechenden Orten im serverseitigen Benutzer-Heimatverzeichnis zu identifizieren (z.B. Start>Eigene Bilder). Durch diese Zuweisung in der Registry werden die Remote Folder anscheinend automatisch auch zu Offline Foldern. Beim Login/Logoff des nächsten Benutzers werden dann leider auch die "Offline Folder" der vorherigen Benutzer des XP-Clients wieder synchronisiert, was zu Verzögerungen führt. Durch Anpassungen im Logonskript war es mir bisher nicht möglich die Registrierung als Offline Folder zu vermeiden bzw. wieder zu deaktivieren. Das maschinenweite Deaktivieren der "Offline Folders" Funktionalität ist in den Benutzer-Logonskripten vermutlich weder gewünscht noch möglich, da die entsprechenden Keys für die generelle Steuerung des Dienstes unter HKEY_LOCAL_MACHINE liegen. Ggf. gibt es eine Möglichkeit beim Domänen-Join clientseitig ein Skript als Administrator ausführen zu lassen um eine solche Anpassung vornehmen zu können? Vielleicht ist der Aufwand für XP aber auch ein bisschen zu hoch und es gibt andere administrative Werkzeuge mit denen sich das einfacher umsetzen lässt. Ohne den Aufruf von SetMyShares hingegen verweist z.B. "Eigene Bilder" auf einen gleichnamigen Ordner im Benutzerprofil. Eine Datei, die dort abgelegt ist, wird dann erst beim Logout zum Server hochgeladen. Hier wäre zu überlegen ob dies eine akzeptable Alternative ist, d.h. ob man z.B. einfach die Funktion SetMyShares optional per UCR de/aktivierbar macht.
Zur Info: im Logonskript hatte ich versucht nach Aufruf von SetMyShares die Registrykeys "\\%LOGONSERVER%\%USERNAME%\Eigene Dateien" etc. aus HKCU\Software\Microsoft\Windows\CurrentVersion\NetCache\AssignedOfflineFolders zu entfernen, aber anscheinend werden diese erst zeitverzögert erstellt.
Wenn man unter UCS@school 2.4 die user-logonscripte verwendet, dann kann man dort das gleiche Verhalten beobachten. (Das bedeutet insbesondere, dass das Verhalten unabhängig von dem neuen VFS-Modul acl_xattr ist.) Weitere Netzrecherche ergab 1. dass remote folder immer automatisch als offline folder behandelt werden. 2. dass das an diesem Bug beobachtete Verhalten der benutzerübergreifenden Synchronisation auf einen Bug in Windowx XP zurückzuführen ist. Microsoft hat dafür einen Hotfix bereitgestellt, der aber auch nur einen Workaround ermöglicht, der für UCS@school schlecht anwendbar ist, siehe http://support.microsoft.com/kb/313323 und http://support.microsoft.com/kb/811660 . Darin findet sich insbesondere die folgende Erklärung: "Autocaching occurs when any process on the computer opens a file on a remote share that is marked for autocaching. Files that are deleted may be replaced before the logoff sequence is completed. If this is a problem, you may want to disable autocaching on shares that host these redirected shell special folders. For example, you might disable autocaching on the My Pictures, My Music, and My Videos folders. " * Siehe auch "Folder Redirection Overview" für Windows Server 2003: http://technet.microsoft.com/de-de/library/cc778976%28v=ws.10%29.aspx oder in der aktuellen Fassung: http://technet.microsoft.com/en-us/library/cc732275.aspx Daraus ergibt sich, dass man das Verhalten entweder per GPO verändern kann (Stichwort "DisableFRAdminPin") oder per Konfigurationsoption an der Freigabe. Samba unterstützt das über die Option "csc policy", die in UDM/UMC an den share-Optionen unter "Samba-Performance>Client-side caching policy" abgebildet ist. Da das "[homes]" share in UCS 3.0 nicht mehr standardmäßig angelegt wird, kann man die Option als Workaround über die local.conf setzen: echo -e '[homes]\n\tcsc policy = disable' >> /etc/samba/local.conf; \ /etc/init.d/samba restart Dieser Workaround ist vermutlich nur für Windows XP sinnvoll, da das Verhalten der "Offline Folder" in Vista und Windows7 grundlegend überarbeitet wurde (und das hier behandelte Problem sich mit Windows7 auch nicht nachstellen ließ). Daher setze ich diesen Bug erstmal auf Wontfix.
Man kann das automatische Client Side Caching von remote foldern entweder A) lokal per Registry Key HKLM\Software\Microsoft\Windows\ CurrentVersion\NetCache Key: "Enabled", type: REG_DWORD, value: "0" oder per GPO deaktivieren: B) Globales deaktiveren von Offline Foldern pro Client: Machine Config>Admin Templates>Network>Offline Files:: Allow or Disallow use of the Offline Files feature Das wird dann in der Registry des Clients als HKLM\Software\Policies\Microsoft\Windows\NetCache!Enabled gespeichert. C) Benutzerbezogen: User Config>Admin Templates>System>Folder Redirection:: Do not automatically make redirected folders available offline = Enabled. Das wird dann in der Registry als HKCU\Software\Policies\Microsoft\Windows\NetCache!DisableFRAdminPin = 1 gespeichert.
OK, * das Problem tritt nur auf Windows XP auf * im Windows XP kann man das an verschiedenen Stellen konfigurieren (gpedit.msc -> Benutzerkonfiguration -> Administrative Vorlageb -> Netzwerk -> Offlinedatei -> Umgeleitete Ordner nicht automatisch offline ...) dann gibt es den Fehler nicht mehr * wir legen diese Umgeleiteten Ordner nun nicht mehr standardmäßig an Bug #28214