Unbrauchbar und kaputt: Roaming User Profiles - Serverbasierte Profile

11.10.2020 | Autor: Mark Heitbrink

Serverbasierte Profile oder genauer gesagt Roaming User Profiles, werden schon seit NT4 Zeiten eingesertzt und der Administrator kennt die Probleme und Fehler, die sich damit im täglichen Leben ergeben. Die hat er im Griff, die sind bekannt und man hat sich dran gewöhnt. Profil löschen etc gehört zur Standardprozedur im Helpdesk.

APPs und Roaming User Profile widersprechen sich. Mit der Einführung von APPs droht Datenverlust und das Profil ist korrupt.

Ihr verwendet keine Apps? Doch, ihr verwendet APPS. Das Startmenü ist eine APP und an der ist es der offensichtlichste Punkt, der den Anwendern auffalen wird.

Was ist mit dem Startmenü passiert?

Genaugenommen ist nichts passiert. Die notwendigen Daten wurden nicht kopiert. Das ist nicht passiert.

APPs speichern ihre Daten unter %LocalAppdata%\Packages (%userprofile%\Appdata\Local). %LocalAppdata% ist wie der Name schon sagt per Design aus dem Roaming ausgeschlossen, im Gegensatz du %Appdata% (%userprofile%\AppData\Roaming). Böse gesagt heissen die beiden Ordner ja genau deswegen so. Der eine wandert mit, der andere nicht.

Das Problem der fehlenden Daten ergibt sich immer in dem Moment, wo der %LocalAppdata%\Packages Ordner nicht zur Verfügung steht. Er ist nur an dem ersten System an dem sich der Benutzer angemeldet hat neu erstellt worden. Die APP Installation funktioniert da ähnlich dem "Active Setup". Beim ersten Anmelden wird die APP mit allen Daten installiert, danach wird der Job als erledigt im Benutzerprofil gespeichert. Solange sich der User an demselben System anmeldet ist die Welt in Ordnung. Der Job wurde einmalig erledigt, die Daten sind da.
Sobald der Anwender den Platz wechselt, oder ein Build Upgrade von Windows 10 kommt ist der Installationsprozess für das Menü als schon erledigt gespeichert und wird nicht mehr gestartet. Zudem fehlen dann auch die Daten und Konfigurationen, die ein Anwender im Tiles Manü gemacht hat. Die Daten sind per Definition nicht im RUP / Profilspeicher enthalten. Es ist und bleibt %LocalAppdata%.
Das Upgrade ist eine Neuinstallation mit Datenübernahme. Bei der Datenübernahme des Benutzerprofils wird %LocalAppdata% ausgeschlossen. Per Definition lieger dort nur temporäre Anwendungscaches, die für die Sitzung notwendig sind und neu erzeugt werden können. Es liegen dort per Defintion keine schützenswerten Daten. Das das einige Hersteller seit über 20 Jahren nicht verstanden haben und dort trotzdem Daten ablegen ist ein anderes Thema.

Wie werden APP Daten synchronisiert?

Kurze Antwort: Über euer Microsoft Konto ins OneDrive. 
Bevor jetzt die Diskussion ausufert, Microsoft macht es genauso wie Google/Android oder Apple. Anwendungsdaten und Konfigurationen werden auch von denen in der Cloud gespeichert. Da gehören sie auf einem Mobildevice hin. Wir erinnern uns an die Idee "One Device"? Ein Windows für alles? Ein riesen Vorteil der APPs ist: APP Daten können bitgenau repliziert werden, das ist im Framework der APPs verankert. Das spart Traffic. Der Roaming Profil Prozess ist Dateibasiert und im Mobilfunk Netzwerk mit geringer Bandbreite nicht zu gebrauchen. Ihr ändert eine Telefonnummer eines Kontakts und der Prozess muss die komplette Datenbank der Kontakte hochladen ... Das macht keine Sinn. Es muss bitgenau sein.
Ich höre den momentanen Aufschrei und kenne alle Argumente, warum RUP doch garnicht so schlecht ist und Microsoft kann das doch nicht machen etc ... Ihr möchtet eine Lösung für das Problem.

Die Antwort ist ein kleines Rätsel: Ratet mal, warum der Artikel mit der Überschrift "Unbrauchbar und kaputt" beginnt ...

Es gibt keine native schöne Boardtechnik um %LocalAppdata% zu synchronisieren.

  • ihr könnt An- und Abmelde Skripte für die fehlenden Daten mit robocopy oder anderen Sync Tools bauen, u.U. habt ihr das schon für andere Programme machren müssen.
  • ihr könnt es mit UE-V versuchen (ich behaupte es geht nicht, UE-V kann keine APPs, auch, wenn es ab der Version 2.0 behauptet wird. Ich habe 6 Integrationen hinter mir, in keiner konnten APPs sychronisiert werden.)
  • ihr könnt einen Drittanbieter aus dem Bereicht "Profilvirtualisierung" einsetzen, der die Daten für euch synchronisiert, z.B.: ehemals ResOne Workspace oder Appsense beide jetzt Ivanti oder VMWare User Environment Manager.
  • Sharepoint OneDrive for Business wäre eine onPremise Option für Microsoft Konto und OneDrive im eigenen Netzwerk
  • Ihr könntet LocalAppdata per Reghack nach Roaming verlegen und dann alle Ordner ausser .\Packages vom Roaming ausschliessen. Ohne Ausschluss habt ihr den kompletten Temp Müll im Sync. Keine gute Idee
  • Oder eben doch Online Konto mit OneDrive ... Hahahaa :-D

Microsoft bietet eine Lösung: Cloud. Deswegen kümmern sie sich nicht um eine weitere. Es gibt schon eine.

Im Netz findet man diverse Anleitungen, um das Kachel/Startmenü zu resetten. Es wird folgender Registryzweig gelöscht:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$de${*}$$windows.data.curatedtilecollection.tilecollectioncontainer. Danach wird der Explorer Prozess beendet und neugestartet. Diese Lösung hilft leider nicht beim RUP, denn der komplette Pfad unterhalb von Store\Cache ist leer. 

Ein kleine Hilfe, damit das Startmenü nicht völlig kaputt aussieht ist "HasCuratedTileCollectionsInitialized = 0". Diesen Registrywert können wir über die Group Policy Preferences verteilen. Verwendet hierfür die Preferences, da sie bei jeder Anmeldung angewendet werden.

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CloudStore\SystemMetaData
HasCuratedTileCollectionsInitialized = 0

Zusätzlich tragen wir einen Autostart/Run Key in die Registry ein, damit der Explorer Prozess durchgestartet wird. Dummerweise muss das bei jeder Anmeldung erfolgen, da wir ja nicht wissen, wo der Anwender sich anmeldet oder ob es ein Build Upgrade war. Auch das machen wir über die Group Policy Preferences.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
"Reset-Explorer-RUP"="cmd /c powershell.exe stop-process -name explorer"

Danach fehlen "nur" die Kacheln, die sich ein User erstellt hat:

Die wichtigsten Kacheln könnten wir mit einem eigenen Startmenülayout retten, das wir per Gruppenrichtlinien verteilen. Sodass es kaum auffällt. Es gibt 1000de Anleitungen wie man das macht, deswegen spare ich mir das hier.

Computer oder Benutzerkonfiguration \ Administrative Vorlagen \ Startmenü und Taskleiste \
Startlayout = \\pfad\share\custom.xml 

... aber: DAS GEBASTEL IST KEINE LÖSUNG!

Ihr dürft in dieses Poblem nicht allzuviel Arbeit investieren, denn wir reden hier nur vom Startmenü. Dafür wird es vielleicht eine Lösung mit viel Aufwand geben. Was ist mit anderen APPs? Habt ihr schon mal unter Windows 7 die Post Its eines Anwender verloren? Sticky Notes ist eine App und es werden weitere kommen, die wichtig sind. Ihr könnt euch nicht komplett gegen APPs verwehren. 

Unter welchen Bedingungen funktionieren Roaming User Profiles (noch):

  • Ihr habt eine 1zu1 Zuordnung der Anwender und ihrer Systeme, Die Anwender wandern nicht. Das RUP ist eigentlich nur eine Datensicherung des Benutzerprofils. Wobei das jetzt gerade Hohn ist, da Daten bewiesenermassen fehlen und verloren gehen.
  • Ihr habt eine hochrestriktive Umgebung, zB Remote Desktop Farmen, Schulen etc Das Profil wird generell bei jeder Anmeldung angepasst, pauschalisiert und neuerstellt. Es gibt keine individuellen Einstellungen.
  • Ihr löscht keine Lokalen Kopien der Roaming User Profiles. Durch das Löschen würde LocalAppData verloren gehen, das ist dummerweise oft der 1st Step im Helpdesk.
  • Ihr habt keine APPs, deren Daten wichtig sind und mit dem Startmenü Schönheitsfehler könnt ihr leben.