Renommer un compte Windows
Transcription
Renommer un compte Windows
Renommer un compte Windows Une contribution de Jean-Claude BELLAMY faite sur le newsgroup ponx.fr win7 http://ponx.org/win7/ Question : Bonjour Hérité d'un PC, reconfiguré sous W7 pro officiel arborescence sous user : le nom du propriétaire précédent et public essayé de changer le propriétaire précèdent sous comptes et protection, pas de problème sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion registered owner, trouvé le coupable, modifié et... rien de changé ou est l'erreur ? Réponse de JC Bellamy : Le "propriétaire" indiqué dans la clef que tu cites n'est qu'une info sans aucune importance au niveau sécurité de l'OS. C'est celui qui apparaît dans la fenêtre "A propos" ou avec WINVER, ou dans les Propriétés système. Il n'a strictement RIEN à voir : - ni avec le propriétaire d'un dossier, d'un fichier ou d'une clef - ni avec un nom de compte ou de profil utilisateur ! Si tu souhaites modifier le nom d'un compte qui apparaît dans le dossier "c:\utilisateurs" (ou "c:\users"), il faut : 1) Ouvrir une session sous un compte appartenant au groupe des administrateurs ET qui soit DIFFÉRENT du compte que l'on veut renommer ET qui a bien les permissions d'accès sur le dossier. (Si ce n'est pas le cas, il faut se les attribuer) 2) Renommer le compte concerné. Avec une version PRO et au delà, c'est très facile à faire avec la MMC "LUSRMGR.MSC", sélection du compte, clic droit, "renommer" Le Coach du PC Page 1 Avec une version HOME, cette MMC n'est pas autorisée (idiotie microsoftienne!). Il faut passer par un script, tel que celui que j'ai écrit ("renameaccount.vbs") : ------- couper ici ------' Script de renommage de nom de compte ' JCB © 2010 Set args = Wscript.Arguments nbargs=args.count If nbargs<>2 then wscript.quit oldname=Trim(args(0)) newname=Trim(args(1)) If oldname="" or newname="" or _ StrComp(oldname,newname,vbTextCompare)=0 _ Then wscript.quit Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colAccounts = objWMIService.ExecQuery( _ "Select * From Win32_UserAccount Where " & _ "LocalAccount = True And Name ='" & oldname & "'") For Each objAccount in colAccounts objAccount.Rename newname Next ------- couper ici ------- Syntaxe : renameaccount ancien-nom nouveau-nom 3) Ouvrir la clef HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList puis sélectionner la sous-clef "S-1-5-21-......" qui corresponde au compte à renommer. Pour cela, examiner le contenu de la clef ProfileImagePath qui contient justement le dossier du profil du compte. Remplacer alors l'ancien chemin par le nouveau "C:\users\ancien-nom" devient donc "C:\users\nouveau-nom" Le Coach du PC Page 2 4) Monter dans HKU la ruche NTUSER.DAT de ce compte (sous un nom arbitraire, p.ex. "nouveau-nom") Puis dans cette branche remplacer toutes les occurrences de "ancien-nom" par "nouveau-nom" En particulier dans la clef : HKU\nouveaunom\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders 5) Démonter la ruche 6) C'est tout !!! ;-) MAIS si on recherche la SIMPLICITÉ, il est plus aisé de supprimer le compte et d'en créer un nouveau (en ayant sauvegardé les fichiers de données importants). -May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------Jean-Claude BELLAMY [MVP Expert IT Pro] http://www.bellamyjc.org ou http://jc.bellamy.free.fr Le Coach du PC Page 3