LDAP-Abfrage gezielt
Dieses kleine Script fragt das AD nach zugewiesener Software ab.
... Eigentlich sucht es nur nach dem in der Inputbox angegebenen String, jedoch ist für jedes zugewiesene SW-Paket natürlich auch der Name des Paketes im AD hinterlegt (Zumindest ist er es in der momentanen Kundensituation. Von daher nur eingeschränkt nutzbar, bzw. für den Einsatz muss es noch angepasst werden.)
Genauso kann man auch Gruppen, OUs oder anderes lokalisieren.
Dieses Script ist für eine gezielte LDAP-Abfrage sehr nützlich.
Die Ausgabe erfolgt in eine Datei c:\abfrage.txt .
'==========================================================================' Gobale Variable' LDAP Name des Objectes in dem gesucht wird'==========================================================================Const ForReading = 1, ForWriting = 2, ForAppending = 8strName = "*"
'==========================================================================' Ergebniss Datei'==========================================================================Set fs = CreateObject("Scripting.FileSystemObject")Set srcpath = fs.getfolder("\shvap022\d$\RADIADB\PRIMARY\SOFTWARE\ZSERVICE") 'Muss angepasst werdenSet datei = fs.OpenTextfile("C:\abfrage.txt",8,true)datei.WriteLine "name; class; adspath"
'For Each i In srcpath.Files'datei.WriteLine""'datei.WriteLine""
'dummy = Split(i, "")'test=UBound (dummy)'WScript.Echo test'wscript.echo dummy'strSucheString = dummy(test)
'datei.WriteLine strSucheString
'==========================================================================' Ask OU'==========================================================================strCategory = "organizationalUnit"strSucheString = InputBox( "Radia suche", "Radia Pol suche")str1 = getItem(strName,strCategory,strSucheString)
'==========================================================================' Ask Group'==========================================================================strCategory = "group"'WScript.Echo "Gruppe: "str1 = getItem(strName,strCategory,strSucheString)
'==========================================================================' Ask Computer'=========================================================================='strCategory = "computer"'WScript.Echo "Computer: "'str1 = getItem(strName,strCategory,strSucheString)
'next
'==========================================================================' Function'==========================================================================Function getItem(ItemNamen,ItemCategory,ItemInGroup)on error resume Next
Set objConnection = CreateObject("ADODB.Connection")Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
'Hier den LDAP-Pfad anpassen
objCommand.CommandText = _ "<LDAP://dc=intra,dc=ring-netz,dc=de>;" & _ "(&(objectCategory=" & ItemCategory & ")(name=" & ItemNamen & "));" & _ "ADsPath;subtree" Set objRecordSet = objCommand.Execute
objCommand.Properties("Page Size") = 1000 objCommand.Properties("Timeout") = 300 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCommand.Properties("Cache Results") = False Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst While Not objRecordSet.EOF strADsPath = objRecordSet.Fields("ADsPath") 'Zeigt dem LDAP Path an 'WScript.Echo strADsPath objRecordSet.MoveNext 'Auslesen der MultiBox strmemberOf = "" Item = "" Set objItem = GetObject(strADsPath) strmemberOf = objItem.GetEx("edmPolicy") For Each Item in strmemberOf strcheck = "0" strcheck = InStr( 1,Item,strSucheString,vbtextcompare) If strcheck > "0" Then  datei.WriteLine Item & "; " & ItemCategory & "; " & strADsPath End if Next WendEnd Function
'kopie=fs.copyfile (datei, "c:audit_"&strSucheString&".txt")wscript.echo "LDAP-Abfrage hat Fertig!!!"