Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#5

Re: VBScript: ActiveDirectory

  Alt 12. Aug 2005, 19:10
Hier ist das, was du suchst ...
Ich bin ebend eher durch Zufall drauf gestoßen ...

ldapquery.vbs

Code:
In diesem Skript wird eine Anfrage an Active Directory gestellt und das Ergebnis an der Standardausgabe zurückgegeben. Es wird in SynServer benutzt, um alle Benutzer herauszufinden, die zur SynServer-Gruppe gehören und prinzipiell so aufgerufen (in einer Zeile):


cscript //nologo ldapquery.vbs
  "(memberOf=CN=Domänen-Admins,CN=Users,DC=synserver,DC=de)"
  "sAMAccountName"


Natürlich müssen Sie den Domänen-Namen DC=synserver,DC=de an Ihr System anpassen, wenn Sie mit dem Skript experimentieren. Das Skript habe ich aus Beispielen von Microsoft zusammengebaut.


Set ArgObj = WScript.Arguments
if ArgObj.Count<>2 then
  wscript.stderr.writeline "ldapquery: Argumentenliste pass nicht"
  wscript.quit(0)
else
  ' Das ADO connection object und ADO command object anlegen
  Set Con = CreateObject("ADODB.Connection")
  Con.Provider = "ADsDSOObject"
  Con.Open "Active Directory Provider"
  Set ocommand = CreateObject("ADODB.Command")
  ocommand.ActiveConnection = Con
  ' Den ADsPath für die Domäne setzen
  Set root = GetObject("LDAP://rootDSE")
  sDomain = root.Get("defaultNamingContext")
  Set domain = GetObject("LDAP://" & sDomain)
  ' Den Befehl zusammensetzen und ausführen
  sADsPath = "<" & domain.ADsPath & ">"
  sFilter = ArgObj.Item(0)
  sAttribsToReturn = ArgObj.Item(1)
  sDepth = "subTree"
  ocommand.CommandText = sADsPath & ";" & sFilter & ";" &
    sAttribsToReturn & ";" & sDepth
  Set rs = ocommand.Execute
  if not rs.EOF then
    rs.MoveFirst
    While Not rs.EOF
      For i = 0 To rs.Fields.Count - 1
        if (isArray(rs.Fields(i))) then
          for each e in rs.Fields(i).Value
            wscript.echo rs.Fields(i).Name&"="&e
          next
        else
          wscript.echo rs.Fields(i).Name & "=" & rs.Fields(i).Value
        end if
      Next
      rs.MoveNext
      wscript.echo ""
    Wend
  end if
end if
Schöne Grüße,
Jens
  Mit Zitat antworten Zitat