Utilisation d'un disque persistant pour Stocker les Profils Utilisateur dans une VM en Mode Lecture Seule ( Read Only)

Introduction
Dans le contexte de l'utilisation d'une VM en lecture seule (Read Only), plusieurs éléments doivent être mis en place pour garantir une utilisation optimale de ce mode de fonctionnement.

Alternative à la mise en place d'un profil itinérant
Dans certains cas, la mise en place d'un profil itinérant peut être complexe. C'est pourquoi cette documentation vous propose une alternative.

Utilisation du disque persistant pour stocker les profils utilisateurs
Cette documentation vous expliquera comment utiliser le disque persistant pour stocker les profils utilisateurs. Toutefois, en mode lecture seule (Read Only), il ne suffit pas de modifier le répertoire par défaut des profils utilisateurs. Ce mode lecture seule supprime les clés de registre liées aux profils créés dans le disque persistant. Par conséquent, il est nécessaire de créer deux scripts pour exporter certaines clés de registre et les importer au démarrage de votre VM en mode lecture seule.


📘

Information

Si vous souhaitez mettre en place un disque persistant sur vos VM, qui sera stocké sur vos postes de travail, il est nécessaire d'installer un nouvel hyperviseur. Dans ce cas, veuillez faire une demande auprès du support ou de votre TAM.


📘

Information

Si vous disposez de Office 365 E3, il est recommandé d'utiliser FSLogix. Cet utilitaire permet de gérer les profils utilisateurs sans avoir à mettre en place de scripts.


Modification du répertoire par défaut des profils utilisateurs

1. Introduction

Vos profils utilisateurs sont créés par défaut dans C:\utilisateurs

Nous allons modifier la configuration pour que vos profils utilisateurs soient créés sur le disque persistant situé sur E:, que nous mettons à disposition dans votre VM.

Dans notre exemple, nous avons nommé le répertoire des profils utilisateurs "Users".

2. Mise en place

Les modifications que vous allez effectuer seront dans le registre.

Il est conseillé, dans ce cas, d'utiliser un compte administrateur local pour réaliser les actions suivantes.

Pour accéder au registre : Démarrer (1), saisir regedit (2) dans la recherche, Exécuter en tant qu'administrateur (3)

Vous devez vous rendre à l'emplacement suivant dans le registre :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

Cliquer sur HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

Puis sur Windows NT\CurrentVersion

Et enfin sur ProfileList

Dans ProfileList, vous trouverez à droite les clés de registre qui ont été créées par défaut.

Par défaut, la clé de registre ProfilesDirectory intègre les données suivantes : %SystemDrive%\Users

Nous allons modifier le "ProfilesDirectory" et y mettre les données suivantes : E:\Users.

Une fois les nouvelles données intégrées dans la clé de registre ProfilesDirectory, redémarrez pour que les modifications soient prises en compte.

Après le redémarrage, tous les profils qui n'ont pas encore été créés seront automatiquement générés dans E:\Users.

3. Script ProfilesDirectory

Dans certains cas, il est préférable de mettre en place un script pour vérifier la lettre de lecteur et s'assurer qu'elle correspond au lecteur backup.

Créez le fichier ProfilesDirectory-Import.ps1, qui pourra être stocké directement sur le master. Vous pouvez choisir librement l'emplacement sur lequel vous sauvegarderez ce script.

Le script vérifiera si le dossier Users existe sur E: ou sur la lettre de lecteur portant le label backup. Si le dossier n'est pas présent, le script le créera. Ensuite, il modifiera la clé de registre ProfilesDirectory.

Voici le script :

#Script built to modify ProfilesDirectory registry key!!!
 
#get perstant disk letter
$scriptDriveLetter = (Get-Volume -FileSystemLabel backup).DriveLetter


#Folder path for User in the Local Persitent disk
$FolderUsers=$scriptDriveLetter+":\Users"



# If not exist create folder
if ( -not (Test-Path -Path $FolderUsers)){
    new-item $FolderUsers -ItemType director
  
}
#ProfilesDirectory registry key modified to allow profiles to be created on the VM's persistent disk
Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' -Name 'ProfilesDirectory' -value $FolderUsers

Ensuite, suivre la même procédure d'intégration que pour le script 2 ProfilList-Import pour exécuter le script au démarrage de l'ordinateur.

Création des scripts d'import et d'export des clés de registre "ProfilList"

❗️

Cette opération ne doit pas être effectuée lorsque vous utilisez des VMs persistantes.

👍

Cette opération doit être effectuée lorsque vous utilisez des VMs en lecture seule (Read Only).

1. Introduction

Dans le contexte de l'utilisation de vos VMs en mode lecture seule (Read Only), il est nécessaire de créer des scripts d'import et d'export pour les clés de registre situées dans ProfileList.

Pourquoi

Votre VM en lecture seule ne conserve pas les modifications apportées durant l'utilisation. Cela signifie que lorsque quelqu'un se connecte avec un nouveau profil utilisateur et que ce profil est créé sur E: (notre disque persistant), tout fonctionne correctement pendant la session en cours. Cependant, lorsque vous arrêtez la VM ou redémarrez votre poste de travail, puis vous reconnectez, les informations précédemment créées dans les clés de registre ne seront plus présentes pour le même utilisateur, entraînant la création d'un nouveau profil.


2. Mise en Place

Introduction

Nous allons créer deux scripts.

  • Premier script : Ce script sera utilisé lors de la fermeture de session de l'utilisateur pour exporter les clés de registre situées dans ProfileList et les stocker dans un emplacement persistant du système.

  • Deuxième script : Ce script sera utilisé lors du démarrage de l'ordinateur pour importer les clés de registre qui auront été précédemment exportées.

Script 1 : ProfilList-Export

Créez le fichier ProfilList-Export.ps1, qui peut être stocké directement sur le master.

Vous êtes libre de choisir l'emplacement de sauvegarde de votre script.

Le script vérifiera si le dossier ExportProfile existe sur E: ou sur la lettre de lecteur portant le label backup. Si ce dossier n'est pas présent, le script le créera et le configurera comme caché. S'il est déjà présent, le script passera directement à l'exportation de la clé de registre.

#Script built to export ProfileList registry key!!!
 
#get perstant disk letter
$scriptDriveLetter = (Get-Volume -FileSystemLabel backup).DriveLetter

#Folder path for Profile list Export in the Local Persitent disk
$Folder=$scriptDriveLetter+":\ExportProfile"

# If not exist create folder
if ( -not (Test-Path -Path $Folder)){
    new-item $Folder -ItemType director
  # hide the Folder to avoid any unxpected use
    attrib +h $Folder
}
 
#export All Profile from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList and save File to E:\ExportProfile\Profiles.reg
reg Export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $Folder\Profiles.reg /y

Script 2 : ProfilList-Import

Faire la création d'un fichier ProfilList-Import.ps1, qui pourra être stocké directement sur le Master.

Nous vous laissons le choix de l'emplacement sur lequel vous allez sauvegarder votre script.

#Script built to import ProfileList registry key!!!
#get perstant disk letter
$scriptDriveLetter = (Get-Volume -FileSystemLabel backup).DriveLetter
#Folder path for Profile list Export in the Local Persitent disk
$Folder=$scriptDriveLetter+":\ExportProfile"
 
 
#Import All Profile to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList from saved File into E:\Users\Profiles.reg
#Scrip saved into C:\ProgramData\qemu-ga\
reg import  $Folder\Profiles.reg

Mise en place des GPO local pour application de vos scripts

Nous allons configurer les scripts pour qu'ils se lancent automatiquement :

  • Script 1 : ProfilList-Export : Ce script s'exécutera lors de la fermeture de session de l'utilisateur.
  • Script 2 : ProfilList-Import : Ce script s'exécutera au démarrage de l'ordinateur.

Ces scripts seront configurés via une GPO locale directement sur le master.

Accédez au Gestionnaire de stratégie de groupe pour commencer la configuration.

Mise en place du script 1 : ProfilList-Export.ps1

-Aller sur la partie Configuration utilisateur \ Paramètres Windows \ Scripts \ Fermeture de session

-Les propriétés de : Fermeture de session vont ouvrir, aller dans "Scripts PowerShell".

-Dans "Scripts PowerShell" ajouter votre script 1 "ProfilList-Export".

-Suite à l'ajout du script, sélectionner "Exécuter les scripts Windows PowerShell en premier" et Appliquer.

Mise en place du script 2 : ProfilList-Import.ps1

-Aller sur la partie Configuration ordinateur \ Paramètres Windows \ Scripts \ Démarrage

-Les propriétés de : Fermeture de session vont ouvrir, aller dans "Scripts PowerShell"

-Dans "Scripts PowerShell" ajouter votre script 2 "ProfilList-Import.ps1".

-Suite à l'ajout du script, sélectionner "Exécuter les scripts Windows PowerShell en premier" et Appliquer.

❗️

N'oubliez pas de créer une version après avoir effectué l'ensemble de ces actions.