Domänen und Lokale Benutzer ermitteln

Hallo!

Ich würde gerne alle im System eingerichteten Benutzer ermitteln. Ich habe leider nur herausgefunden, wie ich die lokalen Benutzer ermitteln kann. Ich bräuchte allerdings auch die Domänen-Benutzer und nach Möglichkeit auch deren Gruppen.
Gibt es hierfür irgendwelche APIs oder Objekte, die ich nutzen könnte?

Ich hoffe, dass jemand mir helfen kann.

Gruß
sweidner

Hallo,

Ich würde gerne alle im System eingerichteten Benutzer
ermitteln. Ich habe leider nur herausgefunden, wie ich die
lokalen Benutzer ermitteln kann. Ich bräuchte allerdings auch
die Domänen-Benutzer und nach Möglichkeit auch deren Gruppen.

ich habe mir Hilfe bei http://www.ActiveVb.de geholt und unter anderem folgenden Link bekommen:

http://www.rlmueller.net/ADOSearchTips.htm

Es gibt wohl noch andere Möglichkeiten. Wenn Du noch mehr brauchst, auch etwas bearbeiten möchtest, wende Dich doch besser an AVB, Da schreibt gerade Jemand an so einem Tool.

Ich habe es auch gerade mal leicht umgeschrieben und getestet, läuft, sieht bei mir so aus:

Option Explicit

Dim adoCommand, adoConnection, strBase, strFilter, strAttributes
Dim objRootDSE, strDNSDomain, strQuery, adoRecordset, strName, strCN


Private Sub Command1\_Click()

 Set adoCommand = CreateObject("ADODB.Command")
 Set adoConnection = CreateObject("ADODB.Connection")
 adoConnection.Provider = "ADsDSOObject"
 adoConnection.Open "Active Directory Provider"
 adoCommand.ActiveConnection = adoConnection

 Set objRootDSE = GetObject("LDAP://RootDSE")

 strDNSDomain = objRootDSE.Get("defaultNamingContext")
 strBase = ""
 strFilter = "(&(objectCategory=person)(objectClass=user))"
 strAttributes = "sAMAccountName,cn"
 strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
 adoCommand.CommandText = strQuery
 adoCommand.Properties("Page Size") = 100
 adoCommand.Properties("Timeout") = 30
 adoCommand.Properties("Cache Results") = False

 Set adoRecordset = adoCommand.Execute

 Do Until adoRecordset.EOF
 strName = adoRecordset.Fields("sAMAccountName").Value
 strCN = adoRecordset.Fields("cn").Value
 List1.AddItem "NT Name: " & strName & ", Common Name: " & strCN
 adoRecordset.MoveNext
 Loop

 adoRecordset.Close
 adoConnection.Close
End Sub

Gruß Rainer

Danke!

Habe den Code getestet. Funktioniert. Allerdings wollte ich nur die auf meinem lokalen PC angelegten User haben. Ich muss überprüfen, ob ein bestimmter User bereits angelegt wurde und dieser auch die entsprechenden Rechte besitzt. Das mit den Rechten ist kein Problem. Nur finde ich leider keine Möglichkeit die eingerichteten lokalen und Domänen-Benutzer auszulesen.
Es kann zudem vorkommen, dass ein lokaler und ein Domänenbenutzer die gleiche Kennung haben.

Das Programm soll letztendlich auf verschiedenen Rechnern eigesetzt werden, wobei es wichtig ist, die User auszulesen.

Ich hoffe, dass ihr mir helfen könnt.

Gruß
sweidner