Archiv verlassen und diese Seite im Standarddesign anzeigen : AD Computer auslesen ->Txt file
Xaero1982
29.03.2006, 17:19
Hallo,
ich muss ein Netzwerk bzw. das AD am Besten nach vorhandenen Rechnern durchsuchen.
Nun haben wir bei uns 9 Domänen und derzeitig lässt sich nur ein Teil auslesen. Von der Hauptdomäne.
Hat vielleicht jemand einen Link?
Quellcode habe ich leider auf Arbeit. Werde diesen morgen nachreichen.
Xaero1982
30.03.2006, 08:44
Hat sich so weit erledigt :)
Ich habs...
koenntest vielleicht noch bitte die loesung fuer die 'nachwelt' posten? ;)
danke
Xaero1982
03.04.2006, 13:16
Könnt ich tun wenn ich denn wollte :o)
Nee, mal ehrlich ich glaube diese Sektion hier ist ziemlich, ehm, ja uninteressant für viele. Warum auch immer.
Ich arbeite derzeit an einem sehr sehr umfangreichen Netzwerkscript und muss sagen, dass WMI und VBScript sehr mächtig sind.
Jedenfalls hier die Lösung
Pfad = "c:\ldap.txt"
strAD = "XXX" '<-hier den domänencontroller eintragen
'Objekte erstellen
set fso = CreateObject("Scripting.FileSystemObject")
set fsoFile = fso.CreateTextFile(Pfad, true)
Set objRootDSE = GetObject("LDAP://RootDSE")
strDomain = objRootDSE.Get("DefaultNamingContext")
'DefaultContainer================
Set OU = GetObject("LDAP://" & strAD & "/ CN=Computers," & strDomain & "")
OU.Filter = Array("Computer")
For Each obj In OU
Message = Message & obj.Name &vbcrlf
Next
'================================
'Administratoren=================
Set OU = GetObject("LDAP://"& strAD &"/ou=Administration,OU=Gruppe," & strDomain & "")
OU.Filter = Array("computer")
For Each obj In OU
Message = Message & obj.Name &vbcrlf
Next
'================================
'DC=============================
Set OU = GetObject("LDAP://"& strAD &"/OU=Domain Controllers," & strDomain & "")
OU.Filter = Array("computer")
For Each obj In OU
Message = Message & obj.Name &vbcrlf
Next
'================================
'================================
Set OU = GetObject("LDAP://"& strAD &"/OU=XXX,OU=XXX,OU=XXX,OU=Gruppe," & strDomain & "")
OU.Filter = Array("computer")
For Each obj In OU
Message = Message & obj.Name &vbcrlf
Next
'================================
Message = Replace(Message,"CN=","") 'Ersetzt CN= durch "Nichts"
wscript.echo Message
fsoFile.WriteLine(Message)
fsoFile.close
set fsoFile = nothing
set fso = nothing
So ich sage mal so: Um das zu nutzen sollte man schon ein wenig Umgang und Erfahrung mit seiner Domäne haben.
Wissen wie die Domäne/n heißen
Wissen wie die OU's heißen
etc. pp
Es gibt einige Filter:
OU.Filter = Array("computer")
In dem Fall benutz ich natürlich computer, da ich ja die Computer auslesen will. Desweiteren gibt es noch "user" und andere.
Die ersten 3 lesen die OU Administratoren, Domain Controllers und den default Computer Container aus.
Message = Replace(Message,"CN=","") 'Ersetzt CN= durch "Nichts"
Da das Ergebnis des auslesens z.b. so aussieht "CN=PC1" steht in der Textdatei auch immer CN= vor den PC Namen.
Mit dem Replace ersetze ich das CN= durch "" nichts.
Bei Fragen fragen :o)
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.