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), il y a un certain nombre de choses à mettre en place pour pouvoir avoir 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 vous trouverez dans cette documentation une alternative.

Utilisation du disque persistant pour stocker les profils utilisateurs:
Cette documentation vous présentera comment utiliser le disque persistant pour stocker les profils utilisateurs. Cependant, ce n'est pas tout, car en mode lecture seule (Read Only), il ne faut pas seulement modifier le répertoire par défaut des profils utilisateurs. Ce mode lecture seule supprimera les clés de registre liées aux profils créés dans le disque persistant. Par conséquent, il sera 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.

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 cela pour que vos profils utilisateurs soient créés dans le disque persistant se trouvant 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 :

Vous devrez 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 que vous avez intégré les nouvelles données dans la clé de registre "ProfilesDirectory", nous vous conseillons de redémarrer.

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

3. Script ProfilesDirectory

Dans certains cas, il est préférable de mettre en place un script qui va contrôler la lettre de lecteur. Pour avoir la bonne lettre pour le lecteur "backup".

Créez le fichier ProfilesDirectory-Import.ps1, qui pourra être stocké directement sur le Master.

Nous vous laissons le choix de l'emplacement où vous allez sauvegarder votre script.

Le script vérifiera si le dossier "Users" existe sur E: ou sur la lettre qui utilise le label "backup". S'il n'est pas présent, il effectuera sa création. Ensuite il fera la modification de 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 lancer le script au démarrage de l'ordinateur.

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

📘

Cela n'est pas à faire lorsque j'utilise des VMs persistantes.

📘

Cela doit être fait lorsque j'utilise des VMs en lecture seule (Read Only).

1. Introduction

Dans le contexte de l'utilisation de vos VMs en mode lecture seule (Read Only), nous devons créer des scripts d'import et d'export pour les clés de registre se trouvant dans "ProfileList".

Pourquoi

Votre VM en lecture seule ne stocke pas les modifications que vous allez apporter pendant l'utilisation. Cela signifie que lorsque quelqu'un se connectera avec un nouveau profil utilisateur et que ce profil sera créé sur E: (notre disque persistant), tout fonctionnera correctement pendant la session en cours. Cependant, lorsque vous arrêterez la VM ou redémarrerez votre ceBox, puis vous vous reconnecterez, les informations qui ont été précédemment créées dans les clés de registre ne seront pas présentes pour le même utilisateur. Ce qui se produira, c'est la création d'un nouveau profil.

2. Mise en Place

Introduction

Nous allons créer deux scripts.

Le premier script : Il sera utilisé lors de la fermeture de session de votre utilisateur pour effectuer une exportation des clés de registre se trouvant dans "ProfilList" et les stocker dans un emplacement du système qui doit être persistant.

Le deuxième script : Il sera utilisé lors du démarrage de l'ordinateur pour lancer l'importation des clés de registre qui auront été exportées précédemment.

Script 1 : ProfilList-Export

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

Nous vous laissons le choix de l'emplacement où vous allez sauvegarder votre script.

Le script vérifiera si le dossier "ExportProfile" existe sur E: ou sur la lettre qui utilise le label "backup". S'il n'est pas présent, il effectuera sa création et mettra le dossier en caché. S'il est déjà présent, il passera à 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 où 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 utiliser nos scripts pour qu'ils soient lancés lors de la fermeture de session de notre utilisateur pour le script 1 ProfilList-Export, et lors du démarrage de l'ordinateur pour le script 2 ProfilList-Import, via une GPO locale directement sur le master.

Accédez au gestionnaire de stratégie de groupe.

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.