Projet

Général

Profil

Tâche #23522

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

Script migration profil Windows

Ajouté par Emmanuel IHRY il y a environ 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
06/06/2017
Echéance:
% réalisé:

100%

Temps estimé:
0.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Décrire ce qui manque pour le changement de domaine

Migration-droits-NTUSER.DAT.jpg Voir (69,7 ko) Alain Guichard, 31/05/2018 11:42

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

Migration-Profile.jpg Voir (130 ko) Alain Guichard, 31/05/2018 11:42

Historique

#1 Mis à jour par Emmanuel IHRY il y a environ 6 ans

  • Tâche parente changé de #23460 à #23689

#2 Mis à jour par Emmanuel IHRY il y a environ 6 ans

  • Statut changé de Nouveau à En cours

#3 Mis à jour par Emmanuel IHRY il y a environ 6 ans

  • Tâche parente changé de #23689 à #23498

#4 Mis à jour par Alain Guichard il y a presque 6 ans

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 Mis à jour par Alain Guichard il y a presque 6 ans

  • % réalisé changé de 0 à 90

#7 Mis à jour par Alain Guichard il y a presque 6 ans

  • Statut changé de En cours à Fermé
  • % réalisé changé de 90 à 100
  • Restant à faire (heures) mis à 0.0

#8 Mis à jour par Emmanuel IHRY il y a presque 6 ans

  • Sujet changé de Spécifier les évolutions du script intégration PC à Script intégration PC
  • Statut changé de Fermé à Nouveau
  • Temps estimé mis à 0.00 h
  • Tâche parente changé de #23498 à #24251

#9 Mis à jour par Emmanuel IHRY il y a presque 6 ans

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 Mis à jour par Emmanuel IHRY il y a presque 6 ans

  • Projet changé de PNE-SR à Distribution EOLE
  • Description mis à jour (diff)
  • Assigné à changé de Alain Guichard à force bleue

#11 Mis à jour par Emmanuel IHRY il y a presque 6 ans

  • Sujet changé de Script intégration PC à Script migration profil Windows

#12 Mis à jour par Emmanuel IHRY il y a presque 6 ans

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 Mis à jour par Emmanuel IHRY il y a presque 6 ans

  • Assigné à changé de force bleue à Emmanuel GARETTE

#15 Mis à jour par Emmanuel IHRY il y a presque 6 ans

  • Statut changé de Nouveau à En cours

#16 Mis à jour par Michel BALLY il y a presque 6 ans

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 Mis à jour par Emmanuel GARETTE il y a plus de 5 ans

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 Mis à jour par Michel BALLY il y a plus de 5 ans

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 Mis à jour par Emmanuel IHRY il y a plus de 5 ans

  • Statut changé de En cours à Fermé

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

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

Formats disponibles : Atom PDF