OVH Cloud OVH Cloud

WMI et Where ?

2 réponses
Avatar
Oleane
Bonjour a tous


Je rechercher comment faire pour lister tous les utilisateurs qui ce trouve
dans le group Administrateurs

Pour faire ma recherche j'utilise la class Win32_GroupUser
l'utilisation seule de la class me donne pleint d'information inutile, donc
j'utilise dans ma class une Extention qui est WHERE, mais je sais pas le
faire fonctionner avec !

Voila le code !
__________________________

Dim search As New ManagementObjectSearcher("SELECT * FROM Win32_GroupUser
where GroupComponent = Administrateur )
Dim info As ManagementObject
For Each info In search.Get()
'Domain Admins
'Debug.WriteLine(info.ToString)
On Error Resume Next
Debug.WriteLine("Part: " & info("PartComponent").ToString())
Debug.WriteLine("Group: " & info("GroupComponent").ToString())
Next
__________________________

Pouvez vous me dire ou je me suis planté ?
merci d'avance

2 réponses

Avatar
Zoury
Salut Oleane ! :O)

Tu peux procéder via une requête Select comme ceci :
'***
Option Explicit On

Imports System.management

Module MainModule

Public Sub Main()

Dim sDomain As String = "mon_domaine"
Dim sGroup As String = "mon_groupe"
Dim sWQL As String = String.Format("select * from win32_groupuser
where GroupComponent=""Win32_Group.Domain='{0}',Name='{1}'""", sDomain,
sGroup)
Dim sScope As String = String.Format("{0}rootcimv2",
Environment.MachineName)

Dim woq As New SelectQuery(sWQL)
Dim msc As New ManagementScope(sScope)
Dim mos As New ManagementObjectSearcher(msc, woq)
For Each mo As ManagementObject In mos.Get()
Console.WriteLine(mo.GetPropertyValue("PartComponent"))
Next

End Sub

End Module
'***

Il semblerait qu'il soit plus rapide de passé via une requête de type
"association" si tu cherches des infos sur les utilisateurs :
Voici un exemple :
'***
Option Explicit On

Imports System.management

Module MainModule

Public Sub Main()

Dim sDomain As String = "mon_domaine"
Dim sGroup As String = "mon_groupe"
Dim sWQL As String = String.Format("associators of
{Win32_Group.Domain=""{0}"",Name=""{1}""} where AssocClass = Win32_GroupUser
ResultRole = PartComponent", sDomain, sGroup)
Dim sScope As String = String.Format("{0}rootcimv2",
Environment.MachineName)

Dim woq As New WqlObjectQuery(sWQL)
Dim msc As New ManagementScope(sScope)
Dim mos As New ManagementObjectSearcher(msc, woq)
For Each mo As ManagementObject In mos.Get()
Console.WriteLine(mo.GetPropertyValue("Name"))
Next

End Sub

End Module
'***

--
Cordialement
Yanick
MVP pour Visual Basic
"Oleane" a écrit dans le message de
news:dbg8b7$c6g$
Bonjour a tous


Je rechercher comment faire pour lister tous les utilisateurs qui ce


trouve
dans le group Administrateurs

Pour faire ma recherche j'utilise la class Win32_GroupUser
l'utilisation seule de la class me donne pleint d'information inutile,


donc
j'utilise dans ma class une Extention qui est WHERE, mais je sais pas le
faire fonctionner avec !

Voila le code !
__________________________

Dim search As New ManagementObjectSearcher("SELECT * FROM Win32_GroupUser
where GroupComponent = Administrateur )
Dim info As ManagementObject
For Each info In search.Get()
'Domain Admins
'Debug.WriteLine(info.ToString)
On Error Resume Next
Debug.WriteLine("Part: " & info("PartComponent").ToString())
Debug.WriteLine("Group: " & info("GroupComponent").ToString())
Next
__________________________

Pouvez vous me dire ou je me suis planté ?
merci d'avance




Avatar
Oleane
Alors là ! bravo claps claps claps ..........

c'est super :)
ça me servira de lecons .

@++