
Migrazione del profilo Citrix UPM a FSLogix
Se sei ancora uno di quelli che stanno ancora lavorando con i profili mobili Citrix UPM (Gestione dei profili utente) e vuoi provare la meraviglia di FSLogix, Ma ovviamente, hai utenti con un profilo UPM e vuoi migrarlo a FSLogix in modo da non ricominciare da zero, Questo è il tuo post!
Quindi quello che ho detto, se vuoi vedere di cosa tratta FSLogix, abbiamo già scritto un documento in cui abbiamo spiegato come funziona, In questo post esamineremo solo come eseguire la migrazione dei dati da un profilo UPM esistente a contenitori VHD o VHDX FSLogix.
Useremo la meravigliosa sceneggiatura di David Ott, quello che farà è convertire i profili che trova in 'F:\Perf_XenApp’ e li lascerà in formato FSLogix in 'F:\Perf_FSLogix’ (Ovviamente nello script modifica con i tuoi percorsi corretti, oltre a modificare la dimensione massima del disco virtuale che creerai, Ce l'ho in 10GB con crescita dinamica). Quando si esegue lo script, rileverà i profili rilevati, e selezionare quelli di cui vogliamo eseguire la migrazione. Potremo provarne uno, y tras validarlo ir por grupos, o todos a la vez como los valientes. Lo bueno es que no se toca el perfil original, Questo è, siempre tendrás una vuelta atrás por si el VHD o VHDX nuevo del usuario te da problemas.
Os dejo aquí el script que estamos utilizando: Migra_Perfiles_UPM_a_FSLogix.ps1
<# Scritto da David Ott Questo script convertirà i profili Citrix UPM in profili FSLogix .vhd (Dovresti essere in grado di modificarlo per fare anche VHDX) Presta attenzione a tutte le aree commentate. Utilizza diskpart per creare/montare/smontare il file .vhd, e robocopy per copiare il profilo UPM nel file .vhd. Una volta eseguito (Supponendo che tu abbia modificato $newprofilepath e $oldprofiles in modo che corrispondano al tuo ambiente) Ti darà un elenco di profili da convertire. È quindi possibile selezionare il profilo(s) che desideri convertire in profili FSLogix. È inoltre possibile modificare questo script per utilizzare i comandi hyperv per creare/montare/smontare i file vhd/vhdx invece di diskpart se è installato il modulo hyperv. Prima dell'uso nel test di produzione!! #> # Percorso profilo FSLOGIX $newprofilepath = "F:\Perf_FSLogix" ##### Percorso del profilo radice FSLogix <# Percorso profilo UPM - le nostre cartelle principali UPM di produzione sono nomeutente.dominio, e l'attuale Windows 7 Il profilo vive sotto V2x64UPM_Profile: \\servercondivisione%NOME UTENTE%.%USERDOMAIN%!CTX_PROFILEVER!!CTX_OSBITNESS! this would have to be edited based on environment - the main thing is to have it have the full path to all of the actual UPM_Profile directories #> $oldprofiles = gci F:\Perf_XenApp | select -Expand fullname | sort | out-gridview -OutputMode Multiple -title "Select profile(s) to convert"| %{ Join-Path $_ "UPM_Profile" } # | ?{$_.name -like "*.$Env:userdomain"} # foreach vecchio profilo foreach ($vecchio in $oldprofiles) { <# Dal momento che so che la cartella contiene il nome utente, lo ottengo e lo salvo nella variabile sam, and use that to get the user's sid then save that to $sid. Molto probabilmente dovrai modificare la riga del $sam per estrarre il nome utente dal vecchio percorso del profilo. Gioca con la stringa e lo split-path fino a quando non riesci a trovare solo il nome utente. For instance let's say your current profile path is \\server\profileshare\username\v2x64\UPM_Profile you could do something like this $sam = (($vecchio -split "Profilo Condividi")[1] -diviso "v2x64")[0] -Sostituire "\\","" Questo divide la stringa in profileshare, e seleziona la 2a parte (0 sarebbe il primo) che è usernamev2x64UPM_Profile poi lo divide di nuovo usando v2x64 e seleziona la prima parte (ricordare 0 è il primo) che è username Infine sostituisce il "\" characters (you need to match \\ come \ is a special character the first slash just says to use it as a string) with nothing... leaving you with the username. #> $sam = (($vecchio -split "Perf_XenApp")[1] -diviso "UPM_Profile")[0] -Sostituire "\\","" $sid = (New-Object System.Security.Principal.NTAccount($sam)).translate([System.Security.Principal.SecurityIdentifier]).Valore <# A .reg file located in %localappdata%\FSLogix - last thing the script does is create the .reg file for the profilelist key #> $regtext = "Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$sid] `"ProfileImagePath`"=`"C:\\Users\\$sam`" `"FSL_OriginalProfileImagePath`"=`"C:\\Users\\$sam`" `"Flags`"=dword:00000000 `"State`"=dword:00000000 `"ProfileLoadTimeLow`"=dword:00000000 `"ProfileLoadTimeHigh`"=dword:00000000 `"RefCount`"=dword:00000000 `"RunLogonScriptSync`"=dword:00000000 " <# set the nfolder path to \\newprofilepath\username_sid - questo non è il valore predefinito Se stai andando con il valore predefinito, sostituisci e poi inverti le variabili $sam/$sid come di seguito $nfolder = join-path $newprofilepath ($SID+"_"+$sam) #> $nfolder = percorso di join $newprofilepath ($SID+"_"+$sam) ##### Vedi nota sopra # if $nfolder doesn't exist - crearlo se (!($nfolder percorso di test)) {New-Item -Percorso $nfolder -Cartella ItemType | Nullo} & icacls $nfolder /setowner "$Env:userdomain$sam" /T / C & icacls $nfolder /concedere $env:userdomain$sam':`(OI')`(CI')F /T # imposta vhd su \nfolderpathprofile_username.vhd $vhd = Join-Path $nfolder ("Profilo_"+$SAM+".Vhd") # Comandi DiskPart $script 1 = "crea file vdisk='"$VHD'" massimo 10240 type=espandibile" $script2 = "sel vdisk file='"$VHD'"'r'nattach vdisk" $script3 = "sel vdisk file='"$VHD'"'r'ncreate parte prim'r'nselect parte 1'r'nformat fs=ntfs veloce" $script4 = "sel vdisk file='"$VHD'"'r'nsel parte 1'r'nassign letter=T" $script5 = "file sel vdisk'"$VHD'"'r'ndetach vdisk" $script6 = "sel vdisk file='"$VHD'"'r'nattach vdisk sola lettura'"'r'ncompact vdisk" <# if the vhd doesn't exist create, allegare, aspettare 5 Secondi (Windows deve recuperare il ritardo), creare/formattare la partizione, assegna la lettera T (Modificarlo secondo necessità), e imposta l'etichetta del disco su Profilo-nome utente #> se (!($vhd percorso di test)) { $copione1 | diskpart $script 2 | diskpart Start-Sleep -s 5 $copione3 | diskpart $script 4 | diskpart & etichetta T: Profilo-$sam Nuovo-Elemento -Percorso T:\Profilo - Directory ItemType | Nullo # Impostare le autorizzazioni per il processo di avvio del profilo ICACLS "T:\Profilo /setowner SISTEMA" Avvio processo icacls -ArgumentList "T:\Profilo /reset /T" Avvio processo icacls -ArgumentList "T:\Profilo /ereditarietà:d" $cmd1 = "T:\Profilo /$env di sovvenzione:userdomain$sam':`(OI')`(CI')F" Avvio processo icacls -ArgumentList "T:\Profilo /grant SYSTEM':`(OI')`(CI')F" Avvio processo icacls -ArgumentList "T:\Profilo /grant Amministratori:`(OI')`(CI')F" Avvio del processo icacls -ArgumentList $cmd 1 } altro { # Se il VHD esiste, collega, aspettare 5 Secondi, assegnare la lettera T $script 2 | diskpart Start-Sleep -s 5 $copione4 | diskpart } # copia nel profilo UPM nella directory Profile sul vhd /E /Purge - In questo modo si aggiornerà con le informazioni più recenti "Copia di $old in $vhd" & robocopia $old T:\Profilo /E /Purge /r:0 | Nullo # cambiar nombre perfil UPM ya migrado #Rename-Item -Path F:\Perf_XenApp$sam -NuovoNome "Cambio.$sam" -Forza # Mover perfil UPM ya migrado Move-Item F:\Perf_XenApp$sam F:\Perf_XenApp_Cambiado_UPM_Profile$sam -Forza # crea il percorso %localappdata%FSLogix se non esiste se (!(Percorso di prova "T:\ProfiloAppDataLocalFSLogix")) { Nuovo-Elemento -Percorso "T:\ProfiloAppDataLocalFSLogix" -Directory ItemType | Nullo } # creates the profiledata.reg file if it doesn't exist if (!(Percorso di prova "T:\ProfiloAppDataLocalFSLogixProfileData.reg")) {$regtext | Fuori file "T:\ProfiloAppDataLocalFSLogixProfileData.reg" -Codifica ascii} $copione5 | diskpart }
Espero que os sea de utilidad por si alguna vez lo necesitáis, Agradecer al autor del script su trabajazo. Si nos fijamos bien, utilizzerà il nome di ogni utente per fare in modo che il SID denipi correttamente la directory del contenitore, sarà proprietario dell'utente del contenitore con autorizzazioni complete, creerà il VHD con la dimensione indicata, Lo assembla, lo partiziona in NTFS, Temporaneamente come unità T:, e copiare tutto il contenuto del profilo UPM in questo VHD.
Grazie a tutti per il tempo che avete dedicato alla lettura & Condividi sui social media.