UE-V in Verbindung mit OneDrive und Intune deployen
In modernen Unternehmensumgebungen, in denen Benutzer häufig zwischen verschiedenen Geräten wechseln, ist es entscheidend, dass Einstellungen und Daten reibungslos und effizient synchronisiert werden. Hier kommt User Experience Virtualization (UE-V) ins Spiel. UE-V bietet eine intelligente Möglichkeit, Benutzereinstellungen auf verschiedenen Geräten konsistent zu halten. In Kombination mit OneDrive, Windows Known Folder Move (KFM) und Enterprise State Roaming (ESR) lässt sich eine leistungsstarke und flexible Lösung umsetzen, die sowohl lokal als auch in der Cloud funktioniert.
Was ist UE-V?
UE-V ist eine Microsoft-Lösung, die Benutzereinstellungen wie Desktop-Hintergründe, Anwendungspräferenzen und andere persönliche Konfigurationen über mehrere Geräte hinweg synchronisiert, ohne den Overhead von traditionellen Lösungen wie Roaming Profiles oder Folder Redirection.
- Roaming Profiles: Synchronisieren das gesamte Benutzerprofil über das Netzwerk, was zu längeren Anmeldezeiten führt. UE-V ist gezielter und synchronisiert nur die relevanten Einstellungen. Funktioniert zu dem auch ohne Anbindung an das Unternehmensnetzwerk (Stichwort Home-Office)
- Enterprise State Roaming (ESR): Speichert Einstellungen wie Sprache, Passwort und Desktop-Layout sicher in der Azure-Cloud, ist jedoch in seiner Reichweite begrenzt. UE-V ergänzt ESR, indem es granularere Anwendungsdaten verwaltet.
- Folder Redirection: Traditionell wurden persönliche Ordner auf Netzwerklaufwerke umgeleitet. Windows Known Folder Move (KFM) migriert diese Ordner stattdessen in OneDrive for Business, was eine moderne, cloudbasierte Lösung bietet.
Warum UE-V mit OneDrive und Intune?
In meinen Projekten habe ich die Kombination aus UE-V, OneDrive (mit Known Folder Move) und Intune gewählt, um folgende Vorteile zu nutzen:
- Gezielte Synchronisation von Einstellungen: UE-V synchronisiert nur die Einstellungen, die wirklich benötigt werden. Dies reduziert den Datenverkehr und beschleunigt die Benutzererfahrung.
- Cloudbasierte Dateispeicherung: Durch die Integration von OneDrive und Known Folder Move können Benutzer ihre wichtigen Dateien jederzeit und auf jedem Gerät abrufen, während UE-V für die Anpassungen an den Benutzerumgebungen sorgt.
- Zentrale Verwaltung über Intune: Mit Intune lässt sich der gesamte Prozess, einschließlich der Installation und Konfiguration von UE-V, vollständig automatisieren und zentral verwalten.
Skriptübersicht und Erläuterung
Um diese Lösung umzusetzen, habe ich mehrere PowerShell-Skripte erstellt, die über Intune als Win32-App bereitgestellt werden. Hier sind die einzelnen Skripte und deren Funktionsweise.
1. EnableUEV.ps1
Dieses Skript aktiviert UE-V, richtet die benötigten Vorlagen ein und stellt sicher, dass die Einstellungen in OneDrive gespeichert werden. Es setzt auch einige Registrierungswerte, um die Kompatibilität mit Files on Demand sicherzustellen.
$Templates = @("Firefox.xml", "Chrome.xml", "MicrosoftOffice2016Win32.xml", "MicrosoftOffice2016Win64.xml", "Edge.xml")
$SettingsStoragePath = "%OneDriveCommercial%\Documents\.DONOTDELETE"
$InboxTemplatesSrc = "C:\ProgramData\Microsoft\UEV\InboxTemplates"
# Chrome Roaming-Profilrichtlinie aktivieren
$Regpath = "HKLM:\Software\Policies\Google\Chrome"
$name = "RoamingProfileSupportEnabled"
$Value = '1'
If(Test-Path $Regpath) {
New-ItemProperty -path $Regpath -name $name -Value $Value -PropertyType DWORD -Force | Out-Null
} Else {
New-Item "$Regpath" -Force
New-ItemProperty -path $Regpath -name $name -Value $Value -PropertyType DWORD -Force | Out-Null
}
# OneDrive-Kompatibilität sicherstellen (Files on Demand)
$Regpath2 = "HKLM:\SOFTWARE\Microsoft\UEV\Agent\Configuration"
$name2 = "ApplyExplorerCompatFix"
$Value2 = '1'
If(Test-Path $Regpath2) {
New-ItemProperty -path $Regpath2 -name $name2 -Value $Value2 -PropertyType DWORD -Force | Out-Null
} Else {
New-Item "$Regpath2" -Force
New-ItemProperty -path $Regpath2 -name $name2 -Value $Value2 -PropertyType DWORD -Force | Out-Null
}
# OneDrive-Konflikt mit gelöschten Dateien vermeiden
$Regpath3 = "HKLM:\SOFTWARE\Policies\Microsoft\OneDrive"
$name3 = "DisableFirstDeleteDialog"
$Value3 = '1'
If(Test-Path $Regpath3) {
New-ItemProperty -path $Regpath3 -name $name3 -Value $Value3 -PropertyType DWORD -Force | Out-Null
} Else {
New-Item "$Regpath3" -Force
New-ItemProperty -path $Regpath3 -name $name3 -Value $Value3 -PropertyType DWORD -Force | Out-Null
}
# Aktiviert UE-V und registriert Templates
If (Get-Module -ListAvailable -Name UEV) {
Import-Module -Name UEV
}
$status = Get-UevStatus
If ($status.UevEnabled -ne $True) {
Enable-Uev
}
# Vorhandene Templates abmelden und neue registrieren
Get-UevTemplate | Unregister-UevTemplate -ErrorAction SilentlyContinue
ForEach ($template in $Templates) {
Register-UevTemplate -Path "$InboxTemplatesSrc\$template"
}
# Einstellungen für OneDrive-Speicherung setzen
Set-UevConfiguration -Computer -SettingsStoragePath $SettingsStoragePath
Dieses Skript sorgt dafür, dass die Profileinstellungen von Chrome, Firefox und anderen Anwendungen in OneDrivegespeichert und über verschiedene Geräte hinweg synchronisiert werden. Zusätzlich wird durch die Anpassung der Registrierungswerte sichergestellt, dass Files on Demand keine Konflikte bei der Synchronisation der UE-V-Daten verursacht.
2. AlwaysOnUEV.ps1
Dieses Skript stellt sicher, dass die UE-V-Dateien immer auf dem Gerät behalten werden und für Benutzer nicht sichtbar sind.
Do {
$status = Get-Process Explorer -ErrorAction SilentlyContinue
If (!($status)) {
Write-Host 'Warten auf den Start von Explorer'
Start-Sleep -Seconds 10
} Else {
Write-Host "Explorer gestartet, Wechsel zum OneDrive-Ausblenden!"
$started = $true
}
} Until ($started)
Do {
Get-ChildItem -Path "C:\Users" -Directory | ForEach-Object {
If ($_.Name -ne "Public") {
$folder = $_.FullName + "\OneDrive - YOURCOMPANYNAMEHERE\Documents\.DONOTDELETE"
If (!(Test-Path $folder)) {
New-Item -ItemType Directory -Path $folder
}
Set-ItemProperty -Path $folder -Name Attributes -Value "Hidden"
attrib -U +P -h -s /s /d "$folder\*.*"
$started = $True
}
}
} Until ($started)
Dieses Skript wird als geplante Aufgabe erstellt und sorgt dafür, dass die UE-V-Dateien dauerhaft auf dem Gerät bleiben und für den Benutzer ausgeblendet werden, um Verwirrungen zu vermeiden.
3. UninstallUEV.ps1
Dieses Skript deinstalliert UE-V und entfernt alle registrierten Vorlagen.
If (Get-Module -ListAvailable -Name UEV) {
Import-Module -Name UEV
}
$status = Get-UevStatus
If ($status.UevEnabled -eq $True) {
Get-UevTemplate | Unregister-UevTemplate -ErrorAction SilentlyContinue
Disable-Uev
$status = Get-UevStatus
}
Dieses Skript deaktiviert UE-V und stellt sicher, dass alle Vorlagen abgemeldet werden, bevor der Dienst gestoppt wird.
Resultat
Mittels „Get-UEVConfiguration“ können wir uns ausgeben lassen, ob und inwieweit die Konfiguration erfolgreich war.
Ein Blick in die Aufgabenplanung zeigt uns, dass auch das Anlegen der Tasks erfolgreich war:User Experience Virtualization