Bug 27364 - Schüler WindowsXP Profil wird nicht geschrieben, Logout langsam
Schüler WindowsXP Profil wird nicht geschrieben, Logout langsam
Status: CLOSED WONTFIX
Product: UCS@school
Classification: Unclassified
Component: Samba
UCS@school 3.0
Other Linux
: P5 normal (vote)
: UCS@school 3.0-errata
Assigned To: Arvid Requate
Felix Botner
:
Depends on:
Blocks: 28214
  Show dependency treegraph
 
Reported: 2012-05-30 16:10 CEST by Arvid Requate
Modified: 2016-10-24 15:33 CEST (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
log.smbd von XP logon+logoff von schueler1 gegen DC "single" (651.15 KB, text/plain)
2012-05-30 16:11 CEST, Arvid Requate
Details
ls -lr auf die Profileverzeichnisse von schueler1 und lehrer1 (3.91 KB, text/plain)
2012-05-30 16:13 CEST, Arvid Requate
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. (404.10 KB, application/x-gzip)
2012-06-26 18:18 CEST, Arvid Requate
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Arvid Requate univentionstaff 2012-05-30 16:10:42 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.
Comment 1 Arvid Requate univentionstaff 2012-05-30 16:11:26 CEST
Created attachment 4416 [details]
log.smbd von XP logon+logoff von schueler1 gegen DC "single"
Comment 2 Arvid Requate univentionstaff 2012-05-30 16:13:07 CEST
Created attachment 4417 [details]
ls -lr auf die Profileverzeichnisse von schueler1 und lehrer1
Comment 3 Stefan Gohmann univentionstaff 2012-05-31 06:49:07 CEST
Ggf. ändert sich das Verhalten durch Bug #27372?
Comment 4 Arvid Requate univentionstaff 2012-05-31 12:35:59 CEST
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.
Comment 5 Arvid Requate univentionstaff 2012-06-26 18:18:27 CEST
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.
Comment 6 Arvid Requate univentionstaff 2012-08-06 19:56:18 CEST
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.
Comment 7 Arvid Requate univentionstaff 2012-08-06 20:03:51 CEST
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.
Comment 8 Arvid Requate univentionstaff 2012-08-07 16:50:03 CEST
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.
Comment 9 Arvid Requate univentionstaff 2012-08-13 14:36:34 CEST
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.
Comment 10 Felix Botner univentionstaff 2012-08-22 15:28:44 CEST
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