blog :: dejan @ fejst.net

Osebni spletni dnevnik z zaznamki in dogodki s potovanja moje življenske poti.

Skripta VBS za rekurzivno iskanje računalnikov po AD Domain Controlerju za Windows 2003 server  

Ena VBScript-a, ki nam izlušči vse računalnike iz domenskega strežnika. Določimo poljuben OU, od katerega dalje samodejno rekurzivno iz vseh pod-OUjev izluščimo vse določene objekte. Skripto se enostavno spremeni tako, da nam izlušči tudi kakšne druge vrednosti kot računalnik (v primeru).

Option Explicit
Dim adoCommand, adoConnection, strBase, strFilter, strAttributes
Dim strQuery, adoRecordset, strNTName, strCN, strDN
' //:: Nastavitve ADO objekta:
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection
' //:: Nastavitev root LDAP-a za rekurzivno iskanje:
' //:: Samo Oracle Computers
strBase = ""
' //:: Določimo filter po objektih (samo COMPUTERS)
strFilter = "(objectCategory=computer)"
' //:: z vejico sestavimo filter vrednosti ki jih želimo poizvedovati:
strAttributes = "sAMAccountName,cn,distinguishedName"
' //:: Sestavimo LDAP poizvedbo rekurzivno
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 30
adoCommand.Properties("Cache Results") = False
' //:: Izvedemo query:
Set adoRecordset = adoCommand.Execute
' //:: Zberemo rezultate:
Do Until adoRecordset.EOF
' //:: Vrnemo vrednosti za prikaz
strNTName = adoRecordset.Fields("sAMAccountName").Value
strCN = adoRecordset.Fields("cn").value
strDN = adoRecordset.Fields("distinguishedName").Value
Wscript.Echo strCN
' //:: Premaknemo se na naslednji objekt (zapis)
adoRecordset.MoveNext
Loop
' //:: Počistimo za sabo, da ne pacamo po ramu.
adoRecordset.Close
adoConnection.Close

AddThis Social Bookmark Button