Project

General

Profile

Tâche #23522

Scénario #24251: Développement de script de migration de profil W7 et W10

Script migration profil Windows

Added by Emmanuel IHRY over 5 years ago. Updated about 5 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
06/06/2017
Due date:
% Done:

100%

Estimated time:
0.00 h
Spent time:
Remaining (hours):
0.0

Description

Décrire ce qui manque pour le changement de domaine

Migration-droits-NTUSER.DAT.jpg View (69.7 KB) Alain Guichard, 05/31/2018 11:42 AM

Migration-droits-prenom.nom.jpg View (326 KB) Alain Guichard, 05/31/2018 11:42 AM

Migration-Profile.jpg View (130 KB) Alain Guichard, 05/31/2018 11:42 AM

History

#1 Updated by Emmanuel IHRY over 5 years ago

  • Parent task changed from #23460 to #23689

#2 Updated by Emmanuel IHRY over 5 years ago

  • Status changed from Nouveau to En cours

#3 Updated by Emmanuel IHRY over 5 years ago

  • Parent task changed from #23689 to #23498

#4 Updated by Alain Guichard over 5 years ago

Principe
Le script de migration doit permettre de migrer un poste client d'un domaine A vers un domaine B en conservant son profil initial (profil utilisateur du domaine A), ceci de façon automatique (pas d'intervention manuelle) et sans copie de profil.
Les postes clients sont des postes Seven ou Windows 10.

Remarque importante
Dans le cas éventuel où une(des) étape(s) ci-dessous ne fonctionne(nt) pas avec Windows 10 (les étapes fonctionnent avec les postes Seven), celle(s)-ci devra(ont) être adaptée(s) pour les postes Windows 10.

Préalable
Les comptes, dont les profils sur les postes clients doivent être récupérés lors de la migration, doivent exister dans le nouveau domaine.
Un fichier contenant tous les comptes et leur SID dans le nouveau domaine devra être établi.

Les différentes étapes du script

Étape 1
Récupérer le SID du compte prenom.nom dans le nouveau domaine : Nouveau_SID

Étape 2
Sortir la machine du domaine A et mettre le poste dans un workgroup (pas besoin de rebooter le poste).

Étape 3
Mettre le poste dans le nouveau domaine Active Directoy B (script initial migration ldap vers AD)

Étape 4
Rebooter le poste et se loguer avec le compte "Administrateur local" (compte -smb du fichier de conf de migration actuel)

Étape 5
Modifier les droits du profil utilisateur prenom.nom (de l'ancien domaine)
Sur le répertoire c:\Users\prenom.nom, qui est le répertoire où se trouve le profil du compte prenom.nom de l'ancien domaine :
- ajouter l'autorisation "Contrôle total" pour le compte prenom.nom du nouveau domaine
- en "remplaçant toutes les autorisations des objets enfants par des autorisation pouvant être héritées de cet objet" (cad de "façon récursive")

=> voir pièce jointe Migration-droits-prenom.nom.jpg

PS: peut se faire avec l'utilitaire Windows SetACL (commande ci-dessous à vérifier/adapter)
voir aide https://helgeklein.com/setacl/examples/managing-file-system-permissions-with-setacl-exe/

SETACL -on "c:\Users\prenom.nom" -ot file -actn ace -ace "n:Nouveau_SID;p:full" 

Étape 6
Modifier les droits du contenu du fichier " c:\Users\prenom.nom\NTUSER.DAT "
Dans la base de registre :
- charger dans une ruche le fichier
- donner les autorisations "Contrôle total" et "Lecture" au compte prenom.nom du nouveau domaine
- décharger la ruche

=> voir pièce jointe Migration-droits-NTUSER.DAT.jpg

PS: peut se faire avec l'utilitaire Windows SetACL (commande ci-dessous à vérifier/adapter)
voir aide https://helgeklein.com/setacl/examples/managing-file-system-permissions-with-setacl-exe/

REG LOAD HKEY_USERS\NtuserDat_compte "c:\Users\prenom.nom\\NTUSER.DAT" 
SETACL -on "HKEY_USERS\NtuserDat_compte" -ot reg -actn ace -ace "n:Nouveau_SID;p:full" 
REG UNLOAD HKEY_USERS\NtuserDat_compte

Étape 7
Nettoyage du profil (obligatoire)
Supprimer les fichiers :
- "c:\Users\prenom.nom\NTUSER.DAT.L*"
- "c:\Users\prenom.nom\NTUSER.DAT{*"
- "C:\Users\prenom.nom\AppData\Local\Microsoft\Windows\usrclass*"

Étape 8
Création de la nouvelle clé du profil dans la base de registre
copier la clé
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ Ancien_SID "
dans la clé
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ Nouveau_SID "

Étape 9
Sauvegarde de l'ancienne clé du profil dans la base de registre
renommer la clé
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ Ancien_SID "
en
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ Ancien_SID.old "

Étape 10
Modifier le SID de la clé " HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileGuid "
La clé ProfilGuid existe quand on est ou a été dans un domaine Active Directory.
Il faut modifier la donnée SidString avec le nouveau SID :
- dans la nouvelle clé du profil utilisateur, s’il existe une clé GUID, relever la valeur de cette clé soit "Valeur_Guid_relevée"
- dans la clé
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfilGuid\Valeur_Guid_relevée"
modifier la donnée SidString avec Nouveau_SID .

=> voir pièce jointe Migration-Profile.jpg

Étape 11
Ajouter l’utilisateur prenom.nom dans le groupe local " Utilisateurs "

net localgroup /add Utilisateurs domaineB\prenom.nom

Étape 12
Connexion dans le nouveau domaine avec le compte prenom.nom après redémarrage du poste

#5 Updated by Alain Guichard over 5 years ago

  • % Done changed from 0 to 90

#7 Updated by Alain Guichard over 5 years ago

  • Status changed from En cours to Fermé
  • % Done changed from 90 to 100
  • Remaining (hours) set to 0.0

#8 Updated by Emmanuel IHRY over 5 years ago

  • Subject changed from Spécifier les évolutions du script intégration PC to Script intégration PC
  • Status changed from Fermé to Nouveau
  • Estimated time set to 0.00 h
  • Parent task changed from #23498 to #24251

#9 Updated by Emmanuel IHRY over 5 years ago

A mon sens il faut deux scripts :
- script intégration au domaine--> déjà existant
- script de migration de profil W7 et W10

Donc dans la description faite par Alain, on ne devrait pas avoir besoin des étapes 2 et 3 dans le script de migration de profil W7 et W10

#10 Updated by Emmanuel IHRY over 5 years ago

  • Project changed from PNE-SR to Distribution EOLE
  • Description updated (diff)
  • Assigned To changed from Alain Guichard to force bleue

#11 Updated by Emmanuel IHRY over 5 years ago

  • Subject changed from Script intégration PC to Script migration profil Windows

#12 Updated by Emmanuel IHRY about 5 years ago

Suite aux échanges avec cadoles
- le script https://helgeklein.com/setacl/examples/managing-file-system-permissions-with-setacl-exe/ est juste une piste non testée. Il y a peut être une meilleure solution. d'autre part il nécessite une licence --> ce n'est donc pas la bonne piste
- Ok sur le principe de définir comme pré-requis une version powershell, le mieux serait la dernière, la version 6

#13 Updated by Emmanuel IHRY about 5 years ago

  • Assigned To changed from force bleue to Emmanuel GARETTE

#15 Updated by Emmanuel IHRY about 5 years ago

  • Status changed from Nouveau to En cours

#16 Updated by Michel BALLY about 5 years ago

Précisions
Pour l'étape 1, un fichier sera fourni contenant le nom des comptes ainsi que le SID du nouveau domaine sous la forme prenom.nom;Nouveau_SID

Sur chaque poste client traité, on recherchera tous les profils existants :
  • si le compte correspondant au profil est dans le fichier ci-dessus, on exécute les étapes 5 à 11
  • sinon le profil est non traité

Les étapes de modification de profil doivent être loguées dans un journal.

#17 Updated by Emmanuel GARETTE about 5 years ago

Le script reprend les différentes étapes décrites.
Les étapes 5 et 6 ont été inversé, sinon je n'arrivais pas à me logger sur 7.

Par contre, la session ne s'ouvre pas sur 10. A priori la méthode n'a pas été complètement valider sur cette version.

Pour tester, faire un fichier CSV dans le même répertoire que le script, ayant le nom "changeright.csv" et le contenu ressemblant à :

username,domain,oldsid
test30,CADOLES,S-1-5-21-3651895017-3268876750-1920785127-1140

Un fichier changeright.txt sera créé avec le rapport.

#18 Updated by Michel BALLY about 5 years ago

Après échanges et discussion, il s'avère qu'il n'y a pas besoin de fichier contenant les infos comptes ancien et nouveau SID
Le PC est considéré migré dans le nouveau domaine (avec le script de migration existant)
  • on liste les répertoires dans c:\users
  • on récupère le nouveau SID via l'API windows
    • si le compte existe dans le domaine "d'arrivée", on migre le profil et on récupère les anciens SID dans la base de registre pour ces répertoires pour faire les étapes décrites ci-dessus
    • si le compte n'existe pas dans le domaine "d'arrivée", on ne migre pas le profil
  • on dispose donc : répertoire utilisateur + nom utilisateur + old_sid + new_sid, le nom du domaine dans lequel le PC est intégré est connu également

#19 Updated by Emmanuel IHRY about 5 years ago

  • Status changed from En cours to Fermé

A qualifier par le MTES dans le cadre de ce scénario #24679

Identification des étapes manquantes pour W10 à faire par le MTES

Also available in: Atom PDF