► Afficher le texte
Code : Tout sélectionner
;=======================================================================================================================
; appel des librairies
;=======================================================================================================================
#Include <Array.au3>
;=======================================================================================================================
; déclaration des variables
;=======================================================================================================================
Opt('MustDeclareVars', 1)
LOCAL $arrMembres[1]
LOCAL $arrExistants[1]
LOCAL $strGroupe = "Administrateurs"
; on initialise les variables
$arrMembres[0] = 0
$arrExistants[0] = 0
; on appelle la fonction de recherche des membres du groupe Administrateurs
_MembresduGroupe($strGroupe)
; on appelle la fonction de recherche des utilisateurs existants sur le poste
_ListeExistants()
_ArrayDisplay($arrMembres, "Membres du groupe " & $strGroupe)
_ArrayDisplay($arrExistants, "Liste des " & $strGroupe & " existants sur ce poste")
;=======================================================================================================================
; fonction de recherche des utilisateurs appartenant au groupe concerné et existants sur le poste
;=======================================================================================================================
Func _ListeExistants()
LOCAL $objNetwork, $objComputer, $objUsers, $objUser
LOCAL $strExistantsClasse, $strExistantsNom
LOCAL $intExistants
; on récupère le nom de l'ordinateur
$objNetwork = ObjCreate("WScript.Network")
$objComputer = $objNetwork.ComputerName
; on récupère la liste des utilisateurs et groupes d'utilisateurs
$objUsers = ObjGet("WinNT://" & $objComputer & ",computer")
; on traite les objets un par un
For $objUser in $objUsers
; on récupère la classe de l'objet
$strExistantsClasse = $objUser.Class
; on vérifie si l'élément est un utilisateur
If $strExistantsClasse = "User" Then
; on récupère le nom de l'utilisateur
$strExistantsNom = $objUser.Name
; on vérifie si l'utilisateur est membre du groupe
_ArraySearch($arrMembres, $strExistantsNom, 0, 0, 0, 0, 1, 1)
; si oui, on l'ajoute au tableau des utilisateurs existants
If Not @error Then
;on récupère le nombre d'utilisateurs existants
$intExistants = $arrExistants[0] + 1
; on redimensionne le tableau des utilisateurs existants
ReDim $arrExistants[$intExistants + 1]
; on stocke le nom de l'utilisateur
$arrExistants[$intExistants] = $objUser.Name
; on enregistre le nombre d'utilisateurs existants
$arrExistants[0] = $intExistants
EndIf
EndIf
Next
EndFunc
;=======================================================================================================================
; fonction de recherche des membres d'un groupe
;=======================================================================================================================
Func _MembresduGroupe($strMembres)
LOCAL $objNetwork, $objComputer, $objGroup, $objUser
LOCAL $intMembres
; on récupère le nom de l'ordinateur
$objNetwork = ObjCreate("WScript.Network")
$objComputer = $objNetwork.ComputerName
; on récupère tous les éléments du groupe
$objGroup = ObjGet("WinNT://" & $objComputer & "/" & $strMembres & ",group")
; on traite les éléments un par un
For $objUser in $objGroup.Members
;on récupère le nombre de membres dans le tableau
$intMembres = $arrMembres[0] + 1
; on redimensionne le tableau des membre du groupe
ReDim $arrMembres[$intMembres + 1]
; on stocke le nom de l'utilisateur dans le tableau
$arrMembres[$intMembres] = $objUser.Name
; on enregistre le nombre d'utilisateurs dans le tableau
$arrMembres[0] = $intMembres
Next
EndFunc