[R] Lister les comptes locaux d'une machine
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Lister les comptes locaux d'une machine
Bon voilà mon problème, je voudrais lister afin de pouvoir les supprimer, les comptes locaux d'une machine fonctionnant sous XP pro... je sais qu'on devrait pouvoir y avoir accès via ObjGet mais comment ??? si quelqu'un a un debut de solution, merci d'avance
- sylvanie
- Niveau 11
- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] lister les comptes locaux d'une machine
au plus simple, je redirigerai la comande net user vers un fivhier via :
et j'utiliserai le log.
Code : Tout sélectionner
run(@comspec& ' /c net user > users.txt',@workingdir,@sw_hide)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
- Tlem
- Site Admin
- Messages : 11791
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] lister les comptes locaux d'une machine
J'ai essayé en récupèrant les infos du Net Use, mais il faut en plus convertir en Ansi, sinon ça ne donne pas le résultat escompter !
Sinon, j'ai trouvé un bout de code qui donnais le nom de l'administrateur, et en le modifiant un peut, ça me crée un tableau, avec le nom de chaque utilisateur.
Sinon, j'ai trouvé un bout de code qui donnais le nom de l'administrateur, et en le modifiant un peut, ça me crée un tableau, avec le nom de chaque utilisateur.
Code : Tout sélectionner
#include <Array.au3>
$Users = GetUsersName()
_ArrayDisplay($Users,"Liste des utilisateurs")
Func GetUsersName()
Local $UsersName
Dim $UserSID, $oWshNetwork, $oUserAccount
$objWMIService = objGet( "winmgmts:{impersonationLevel=impersonate}!//" & @ComputerName & "/root/cimv2")
$oUserAccounts = $objWMIService.ExecQuery("Select Name, SID from Win32_UserAccount WHERE Domain = '" & @ComputerName & "'")
For $oUserAccount In $oUserAccounts
$UsersName &= $oUserAccount.Name & "|"
Next
Return StringSplit(StringLeft($UsersName, StringLen($UsersName)-1), "|")
EndFunc
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] lister les comptes locaux d'une machine
cette Wmi peut te donner de nombreuses infos:
esperant que ca reponde a ta question.
Code : Tout sélectionner
#include<guiconstants.au3>
dim $Output
$strComputer = "localhost"
$Output = $Output & "Computer: " & $strComputer & @CRLF
$Output = $Output & " == == == == == == == == == == == == == == == == == == == == == " & @CRLF
$objWMIService = ObjGet ( "winmgmts:\\" & $strComputer & "\root\CIMV2" )
$colItems = $objWMIService.ExecQuery ( "SELECT * FROM Win32_UserAccount" , "WQL" )
For $objItem In $colItems
$Output = $Output & "Caption: " & $objItem.Caption & @CRLF
$Output = $Output & "Description: " & $objItem.Description & @CRLF
$Output = $Output & "Disabled: " & $objItem.Disabled & @CRLF
$Output = $Output & "Domain: " & $objItem.Domain & @CRLF
$Output = $Output & "FullName: " & $objItem.FullName & @CRLF
$Output = $Output & "Name: " & $objItem.Name & @CRLF
$Output = $Output & "PasswordChangeable: " & $objItem.PasswordChangeable & @CRLF
$Output = $Output & "PasswordExpires: " & $objItem.PasswordExpires & @CRLF
$Output = $Output & "PasswordRequired: " & $objItem.PasswordRequired & @CRLF
$Output = $Output & "SID: " & $objItem.SID & @CRLF
$Output = $Output & "Status: " & $objItem.Status & @CRLF & @crlf
Next
GUICreate ( "" , 400 , 400 , - 1 , - 1 , $WS_overlappedwindow )
GUICtrlCreateEdit ( $Output , 10 , 10 , 380 , 380 , $ws_vscroll )
GUISetState ( @SW_SHOW )
While 1
$msg = guigetmsg ( )
if $msg = - 3 then ExitLoop
sleep ( 10 )
WEnd
- Tlem
- Site Admin
- Messages : 11791
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] lister les comptes locaux d'une machine
@arrkhan : Yindoo demandait de lister les comptes utilisateurs, et non le détail de chaque compte.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] lister les comptes locaux d'une machine
ah ouais ^^
mais la .SID peut egalement etre pratique pour supprimer les cle correspondate aux compte supprimes
mais la .SID peut egalement etre pratique pour supprimer les cle correspondate aux compte supprimes
- Tlem
- Site Admin
- Messages : 11791
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] lister les comptes locaux d'une machine
Il suffisait donc d'indiquer les éléments qui pouvaient être rajouter au code précédent.
Liste des éléments :
Ou plus simplement si c'était pour la SID, de modifier le code comme ceci :
Liste des éléments :
Code : Tout sélectionner
$oUserAccount.Caption
$oUserAccount.Description
$oUserAccount.Disabled
$oUserAccount.Domain
$oUserAccount.FullName
$oUserAccount.Name
$oUserAccount.PasswordChangeable
$oUserAccount.PasswordExpires
$oUserAccount.PasswordRequired
$oUserAccount.SID
$oUserAccount.Status
Code : Tout sélectionner
For $oUserAccount In $oUserAccounts
$UsersName &= $oUserAccount.Name & "#" & $oUserAccount.SID & "|"
Next
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".