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