Page 1 sur 1
[R] Mystère de la BDR
Posté : jeu. 09 janv. 2014 07:40
par Ks10
Bonjour à tous !
Donc cela fait un moment que je m'intéresse à la base de registre et malgrès mes recherches je n'est pas trouver de documentation poussé sur la base de registre. (Excepté quelques présentation des différentes ruches mais rien qui m'aide pour ce que j'ai besoin.)
J'aimerais savoir si il est possible de récupérer la configuration système de chaque utilisateur présent sur le poste ?
Quand je dit la configuration système je sous-entend :
- Si le poste est sur un domaine
- Les imprimantes installés
- Le nom de l'ordinateur. (Pour sa je sait qu'il est possible de récupérer)
Bref le maximum de configuration. Mais le plus important la mise en domaine du poste serait déjà un bon début.
Le but recherché est qu'a partir d'un simple importe / exporte, je peut déplacer la configuration d'un ordinateur sans avoir à me retaper la configuration manuellement.
Voila
Merci d'avance.
Re: [..] Mystère de la BDR
Posté : jeu. 09 janv. 2014 11:52
par jguinch
- Pour savoir si un poste est membre d'un domaine ou non, tu trouveras une petite fonction
ici
- Pour le nom de l'ordinateur, tu as la macro @ComputerName
- Pour exporter - importer les imprimantes, tu peux t'appuyer sur la commande PrintBrm.exe, disponible sous Windows 7 dans C:\Windows\System32 (si c'est du XP, il y a des utilitaires, dont
PrintMig)
- Pour les utilisateurs, tu veux quoi ? juste la liste des comptes ? (tu ne pourras te toute façon pas récupérer les mots de passe) Tu peux faire un truc comme ça :
► Afficher le texteListe des comptes
Code : Tout sélectionner
Local $objNetwork = ObjCreate("Wscript.Network")
Local $strComputer = $objNetwork.ComputerName
Local $colAccounts = ObjGet("WinNT://" & $strComputer & "")
Local $afilter[1] = ["user"]
Local $objUser
$colAccounts.Filter = $afilter
For $objUser In $colAccounts
MsgBox(0, "", "Nom d'utilisateur : " & $objUser.Name & @CRLF & "Nom complet : " & $objUser.FullName & @CRLF & "Description : " & $objUser.Description )
Next
Je te joins un petit UDF que j'ai fait pour le boulot, ça pourra t'aider à lister les utilisateurs. Après, pour créer les utilisateurs sur une autre machine, tu pourras utiliser un truc comme ça :
► Afficher le texte_CreateAccount()
Code : Tout sélectionner
Func _CreateAccount($strUserName,$strFullName,$strPassword,$strGroup)
$strComputer = @ComputerName
; Code To add User
$objSystem = ObjGet("WinNT://" & $strComputer)
$objUser = $objSystem.Create("user", $strUserName)
$objUser.FullName = $strFullName
$objUser.SetPassword ($strPassword)
;~ Pour Info Voici les différents flags en hexa.
;~ 0x2 Account Disabled
;~ 0x10 Account Locked out
;~ 0x20 Password Not Required
;~ 0x40 Cannot Change Password
;~ 0x10000 Password Never Expires
;~ 0x800000 Password Expired
$objUser.userFlags = 0x10000
$objUser.SetInfo
; Code to add User to Group
$objGroup = ObjGet("WinNT://" & $strComputer & "/" & $strGroup)
$objGroup.Add("WinNT://" & $strUserName)
EndFunc
Re: [..] Mystère de la BDR
Posté : jeu. 09 janv. 2014 12:10
par Ks10
- Pour savoir si un poste est membre d'un domaine ou non, tu trouveras une petite fonction ici
Je me suis mal exprimé ^^ , je voulais savoir si à partir de la base de registre il existait une clé qui détiendra la configuration de l'ordinateur, c'est à dire si il est sur un domaine ou pas. Le but de recherché serait qu'a partir de cette clé on peut l'exporté et l'importé sur une autre machine pour effectuer la mise en domaine sans passé par l'interface graphique. Je connait qu'il existe un utilitaire nommé Netdom mais je me posé quand même la question pour la base de registre.
- Pour le nom de l'ordinateur, tu as la macro @ComputerName
Ah oui j'avais zappé cette commande.
- Pour exporter - importer les imprimantes, tu peux t'appuyer sur la commande PrintBrm.exe, disponible sous Windows 7 dans C:\Windows\System32 (si c'est du XP, il y a des utilitaires, dont PrintMig)
La commande PrintBrm.exe exporte t-elle les imprimantes réseaux installés ?
Parce que dans la documentation de Microsoft, il insiste bien sur les imprimantes USB. ^^
Je te joins un petit UDF que j'ai fait pour le boulot, ça pourra t'aider à lister les utilisateurs. Après, pour créer les utilisateurs sur une autre machine, tu pourras utiliser un truc comme ça :
Pour crée les comptes j'allais utilisé "net user" et "net localgroup" il font bien l'affaire aussi :')
Re: [..] Mystère de la BDR
Posté : jeu. 09 janv. 2014 12:18
par jguinch
"si il est sur un domaine ou pas" : oui, c'est ce que fait ma fonction. Par contre, elle ne te donnera pas le nom du domaine en question.
"net user" et "net localgroup" suffiront certainement. Attention tout de même, "net user" ne te permettra pas de cocher la case "le mot de passe n'expire jamais". Pour ça, tu pourra utiliser la commande WMIC après la création du compte : WMIC USERACCOUNT WHERE "Name='username" SET PasswordExpires=FALSE.
Pour les imprimantes réseau, il faut essayer...
Re: [..] Mystère de la BDR
Posté : jeu. 09 janv. 2014 12:40
par Ks10
D'accord je te remercie pour ces informations.
Re: [R] Mystère de la BDR
Posté : jeu. 09 janv. 2014 16:40
par ricky
@jguinch :
merci pour ton code, intéressant, mais tu as quoi dans le fichier ini de la fonction _SIDToName(), car j'amerais comprendre cette fonction.
Merci d'avance
Re: [R] Mystère de la BDR
Posté : ven. 10 janv. 2014 10:00
par jguinch
@ricky : désolé, cette fonction est issue d'un de mes script pour lequel j'avais alimenté un fichier INI avec la liste des comptes et SID du domaine. Ce n'est donc pas une fonction utilisable ici.
Par contre, j'ai modifié dans mon code ci-dessus la fonction _SIDToName pour qu'elle fonctionne (ça peut servir)