Migrieren des Citrix UPM-Profils zu FSLogix

Druckfreundlich, PDF & Email

Wenn Sie immer noch zu denen gehören, die noch mit Citrix UPM Mobile-Profilen arbeiten (Verwaltung von Benutzerprofilen) und Sie möchten das Wunder von FSLogix ausprobieren, Aber natürlich, Sie haben Benutzer mit einem UPM-Profil und möchten dieses zu FSLogix migrieren, damit Sie nicht bei Null anfangen müssen, Das ist dein Beitrag!

Also, was ich gesagt habe, Wenn Sie sehen möchten, worum es bei FSLogix geht, haben wir bereits ein Dokument geschrieben, in dem wir erklärt haben, wie es funktioniert, In diesem Beitrag werden wir uns nur ansehen, wie Daten aus einem vorhandenen UPM-Profil zu FSLogix VHD- oder VHDX-Containern migriert werden.

Wir verwenden das wunderbare Drehbuch von David Ott, was es tun wird, ist die Profile zu konvertieren, die es in 'F findet.:\Perf_XenApp’ und belässt sie im FSLogix-Format in 'F:\Perf_FSLogix’ (Offensichtlich ändern Sie im Skript mit Ihren korrekten Pfaden, sowie die maximale Größe des virtuellen Laufwerks zu ändern, das Sie erstellen möchten, Ich habe es in 10 GB mit dynamischem Wachstum). Wenn Sie das Skript ausführen, erkennt es die erkannten Profile, und wählen Sie diejenigen aus, die wir migrieren möchten. Wir werden in der Lage sein, einen zu probieren, und nachdem Sie es validiert haben, gehen Sie in Gruppen, oder auf einmal wie die Mutigen. Das Gute ist, dass das Originalprofil nicht angetastet wird, Das ist, Sie haben immer eine Rückkehr, falls die neue VHD oder VHDX des Benutzers Ihnen Probleme bereitet.

Hier ist das Skript, das wir verwenden: Migra_Perfiles_UPM_a_FSLogix.ps1

<#
Geschrieben von David Ott Dieses Skript konvertiert Citrix UPM-Profile in FSLogix .vhd-Profile (Sie sollten in der Lage sein, es auch so zu bearbeiten, dass VHDx ausgeführt wird)
Achten Sie auf alle kommentierten Bereiche.  Es verwendet diskpart, um die .vhd-Datei zu erstellen/bereitzustellen/die Bereitstellung aufzuheben, und robocopy zum Kopieren des UPM-Profils in die VHD-Datei.
Nach der Ausführung (Angenommen, Sie haben $newprofilepath und $oldprofiles entsprechend Ihrer Umgebung bearbeitet) Sie erhalten eine Liste der zu konvertierenden Profile.  Sie können dann auswählen, welches Profil(s) Sie in FSLogix-Profile konvertieren möchten.
Sie können dieses Skript auch so bearbeiten, dass Hyperv-Befehle zum Erstellen/Bereitstellen/Aufheben der Bereitstellung der VHD/VHDX-Dateien anstelle von diskpart verwendet werden, wenn Sie das Hyperv-Modul installiert haben.
Vor der Verwendung im Produktionstest!!
#>
# fslogix-Profilpfad $newprofilepath = "F:\Perf_FSLogix" ##### FSLogix-Stammprofilpfad
<#
UPM Profilpfad - Unsere Produktions-UPM-Stammordner sind username.domain, und das eigentliche Windows 7 Das Profil befindet sich unter v2x64UPM_Profile:
\\servershare%USERNAME%.%USERDOMAIN%!CTX_PROFILEVER!!CTX_OSBITNESS!
Dies müsste je nach Umgebung bearbeitet werden - Die Hauptsache ist, dass es den vollständigen Pfad zu allen tatsächlichen UPM_Profile Verzeichnissen hat #>
$oldprofiles = gci F:\Perf_XenApp | select -Vollständigen Namen erweitern | sortieren | out-gridview -OutputMode Multiple -title "Profil auswählen(s) zum Konvertieren"| %{
Verknüpfungspfad $_ "UPM_Profile"
}

# | ?{$_.name -wie "*.$Env:BenutzerDomäne"}
 
# foreach altes Profil foreach ($Alt in $oldprofiles) {
<#
Da ich weiß, dass der Ordner den Benutzernamen enthält, hole ich mir diesen und speichere ihn in der Variablen sam, and use that to get the user's sid
then save that to $sid.
Sie müssen höchstwahrscheinlich die $sam Zeile bearbeiten, um den Benutzernamen aus dem alten Profilpfad zu ziehen.  Spielen Sie mit dem String und dem Split-Path, bis Sie nur noch den Benutzernamen festnageln.  For instance let's say your current profile path is
\\server\profileshare\username\v2x64\UPM_Profile  you could do something like this
$sam = (($alt -split "ProfilTeilen")[1] -trennen "v2x64")[0] -Ersetzen "\\",""
Dadurch wird die Zeichenfolge bei profileshare aufgeteilt, und wählt den 2. Teil aus (0 wäre die erste) das ist Benutzernamev2x64UPM_Profile dann teilt es das wieder mit v2x64 auf und wählt den ersten Teil aus (merken 0 ist die erste) was username ist, schließlich ersetzt es die "\" Zeichen (Sie müssen übereinstimmen \\ Ass \ ist ein Sonderzeichen, der erste Schrägstrich sagt nur, dass es als Zeichenfolge verwendet werden soll) mit nichts... und Sie erhalten den Benutzernamen.  
#>
$sam = (($alt -split "Perf_XenApp")[1] -trennen "UPM_Profile")[0] -Ersetzen "\\",""
$sid = (Neues-Objekt System.Security.Principal.NTAccount($Sam)).Übersetzen([System.Security.Principal.SecurityIdentifier]).Wert
<#
Eine .reg Datei, die sich in %localappdata%FSLogix befindet - Als letztes erstellt das Skript die .reg Datei für den ProfileList-Schlüssel #>
$regtext = "Version des Windows-Registrierungseditors 5.00
 
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList$sid]
`"ProfileImagePath'"=`"C:\\Benutzer\$sam'"
`"FSL_OriginalProfileImagePath""=`"C:\\Benutzer\$sam'"
`"Flaggen""=dword:00000000
`"Staat""=dword:00000000
`"ProfileLoadTimeLow'"=dword:00000000
`"ProfileLoadTimeHigh'"=dword:00000000
`"RefCount'"=dword:00000000
`"RunLogonScriptSync'"=dword:00000000
"
<# Legen Sie den Nfolder-Pfad auf \NewProfilePath fest username_sid - Dies ist nicht der Standard: Wenn Sie mit dem Standard fortfahren, dann ersetzen Sie die $sam/$sid-Variablen und kehren Sie sie wie folgt um: $nfolder = join-path $newprofilepath ($sid+"_"+$Sam)
#>
$nfolder = Verknüpfungspfad $newprofilepath ($sid+"_"+$Sam) ##### Siehe Hinweis oben
# if $nfolder doesn't exist - Erstellen Sie es, wenn (!(Testpfad $nfolder)) {New-Item -Path $nfolder -ItemType-Verzeichnis | Out-Null}
& icacls $nfolder /setowner "$Env:userdomain$sam" /T /C
& ICACLS $nfolder /Grant $env:Benutzerdomäne$sam':`(OI')`(CI")F /T
# Legt VHD auf \nfolderPathprofile_username.vhd fest $vhd = Join-Path $nfolder ("Profil_"+$sam+".Vhd")
# diskpart-Befehle $script 1 = "vdisk erstellen='"$VHD"" Maximum 10240 Typ=erweiterbar"
$Skript2 = "sel vdisk file='"$VHD""'r'nattach vdisk"
$Skript3 = "sel vdisk file='"$VHD""'r'ncreate part prim'r'nselect part 1'r'nformat fs=ntfs quick"
$Skript4 = "sel vdisk file='"$VHD""'r'nsel Teil 1'r'nassign letter=T"
$Skript5 = "sel vdisk file""$VHD""'r'ndetach vdisk"
$Skript6 = "sel vdisk file='"$VHD""'r'nattach vdisk schreibgeschützt'"'r'ncompact vdisk"
<#
if the vhd doesn't exist create, befestigen, Warte 5 Nachschlag (Windows muss aufholen), Erstellen/Formatieren der Partition,
belegt den Buchstaben T (Ändern Sie dies nach Bedarf), und legt die Datenträgerbezeichnung auf Profil-Benutzername fest #>
wenn (!(Testpfad $vhd)) {
$Skript1 | Diskpart $script 2 | diskpart Start-Schlaf -s 5
$Skript3 | Diskpart $script 4 | Diskpart
& Beschriftung T: Profil-$sam Neues Element -Pfad T:\Verzeichnis "Profile -ItemType" | Out-Null
# Festlegen von Berechtigungen für die ICACLs für den Startprozess des Profils "T:\Profil /setowner SYSTEM"
Start-Prozess icacls -ArgumentList "T:\Profil /zurücksetzen /T"
Start-Prozess icacls -ArgumentList "T:\Profil /Vererbung:d"
$cmd1 = "T:\Profil /grant $env:Benutzerdomäne$sam':`(OI')`(CI")F"
Start-Prozess icacls -ArgumentList "T:\Profil /grant SYSTEM':`(OI')`(CI")F"
Start-Prozess icacls -ArgumentList "T:\Profil /grant Administratoren':`(OI')`(CI")F"
Start-Prozess icacls -ArgumentList $cmd 1
} oder {
# Wenn die VHD vorhanden ist, fügen Sie, Warte 5 Nachschlag, Buchstaben T $script 2 zuordnen | diskpart Start-Schlaf -s 5
$Skript4 | Diskpart
}

# Kopiert das UPM-Profil in das Profilverzeichnis auf der VHD /E /Purge - Auf diese Weise wird es mit den neuesten Informationen aktualisiert
"Kopieren von $old nach $vhd"
& Robocopy $old T:\Profil /E /Bereinigen /r:0 | Out-Null

# cambiar nombre perfil UPM ya migrado #Rename-Item -Path F:\Perf_XenApp$sam -Neuer Name "Cambio.$sam" -Kraft

# Mover perfil UPM ya migrado Move-Item F:\Perf_XenApp$sam F:\Perf_XenApp_Cambiado_UPM_Profile$sam -Force

# erstellt den Pfad %localappdata%FSLogix, wenn er nicht vorhanden ist, wenn (!(Test-Pfad "T:\ProfilAppDataLokalFSLogix")) {
Neues Element -Pfad "T:\ProfilAppDataLokalFSLogix" -ItemType-Verzeichnis | Out-Null
}
# creates the profiledata.reg file if it doesn't exist
if (!(Test-Pfad "T:\ProfilAppDataLokalFSLogixProfileData.reg")) {$Regtext | Ausgehende Datei "T:\ProfilAppDataLokalFSLogixProfileData.reg" -Codieren von ASCII}
$Skript5 | Diskpart
}

Ich hoffe, es wird Ihnen nützlich sein, falls Sie es jemals brauchen, dem Autor des Drehbuchs für seine Arbeit zu danken. Wenn wir genau hinschauen, Es wird der Name jedes Benutzers verwendet, um die SID zu erhalten, um das Containerverzeichnis korrekt zu benennen, Besitzt den Containerbenutzer mit vollständigen Berechtigungen, erstellt die VHD mit der angegebenen Größe, Er baut es zusammen, partitioniert es in NTFS, Vorübergehend als Einheit T:, und kopieren Sie den gesamten Inhalt des UPM-Profils auf diese VHD.

Vielen Dank an alle für Ihre Lesezeit & In den sozialen Medien teilen.

Empfohlene Beiträge

Verfasser

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Zögern Sie nicht, mich zu kontaktieren, Ich werde versuchen, dir zu helfen, wann immer ich kann, Teilen ist Leben ;) . Genießen Sie Dokumente!!!