AD Computer auslesen ->Txt file

Xaero1982

Well-Known Member
#1
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

Well-Known Member
#4
Könnt ich tun wenn ich denn wollte :eek:)

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

Code:
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:
Code:
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.

Code:
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 :eek:)
 
Oben