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