Jump to content

2 Objektklassen im AD per vbs abfragen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

ich möchte die Computerkonten im AD per vbs abfragen. Das Problem was ich dabei habe ist, dass ich einmal die Objektklasse "computers" und noch eine weitere Objektklasse "enatelSoftwareVersion" (durch Schemaerweiterung hinzukommen) abfragen möchte. Hintergrund ist, dass ich als Ausgabe den Computername (Klasse Computers) und ein Attribut aus der Klasse enatelSoftwareVersion haben möchte.

 

Im Grunde soll das Script wie folgt aussehen:

- frage alle Computerkonten im AD ab, wo das Attribut enatelSoftwareVersion gefüllt ist

- gebe mir den Value von enatelSoftwareVersion zurück

- gebe mir den Value name aus der Klasse computers zurück

 

Danke für die Hilfe.

Link zu diesem Kommentar

Hallo,

nein, enatelSoftwareModule ist die Klasse von dem Attribut enatelSoftwareModuleVersion. Deswegen auch mein Problem, zwei Klassen in einem Skript abzufragen.

 

Ein AD-Computerkonto sieht im ADSI-Edit wie folgt aus:

- CN=Computername,OU=XY,DC=meine,DC=dom,DC=de

(klar ... Objectclass = computer)

- CN=SSOWatch,CN=Computername,OU=XY,DC=meine,DC=dom,DC=de

(Objectclass = enatalSoftwareVersion)

- CN=Extended Manager,CN=Computername,OU=XY,DC=meine,DC=dom,DC=de

(Objectclass = enatalSoftwareVersion)

Link zu diesem Kommentar

Ok... also was ist jetzt die Klasse und was das Attribut????

 

Dein erstes Posting:

erst:

weitere Objektklasse "enatelSoftwareVersion"

dann:

gebe mir den Value von enatelSoftwareVersion zurück[/Quote]

 

Dein zweites Posting:

erst:

enatelSoftwareModule ist die Klasse von dem Attribut enatelSoftwareModuleVersion

 

Off-Topic:

Wenn, dann ist das Attribut Bestandteil der Klasse und nicht andersherum...

dann:

Objectclass = enatalSoftwareVersion

 

Also: die Objektklasse scheint enatelSoftwareVersion zu sein

 

Was ist denn nun das Attribut was du Abfragen willst?

Link zu diesem Kommentar

Ja ist schon klar ;)

So richtig komme ich nicht weiter. So sieht man script momentan aus:

 

Const ADS_SCOPE_SUBTREE = 2

 

Set fso=CreateObject("Scripting.FileSystemObject")

Set tf=fso.OpenTextFile("SSOWatch.txt",2,1)

 

Set objConnection = CreateObject("ADODB.Connection")

Set objCommand = CreateObject("ADODB.Command")

objConnection.Provider = "ADsDSOObject"

objConnection.Open "Active Directory Provider"

 

'############################################################

'SSOSoftware-Abfrage 4.54 Build 2678

'############################################################

 

 

Set objCommand.ActiveConnection = objConnection

objCommand.CommandText = _

"Select distinguishedName from " & _

"'LDAP://DC=test,DC=de' where objectClass='enatelSoftwareModule'" & _

" and enatelSoftwareModuleVersion = '72623751'"

objCommand.Properties("Page Size") = 1000

objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst

 

Do Until objRecordSet.EOF

tf.Writeline objRecordSet.Fields("distinguishedName").Value

objRecordSet.MoveNext

Loop

Link zu diesem Kommentar

ganz einfach ;-)

mit tf.Writeline objRecordSet.Fields("distinguishedName").Value erhalte ich zwar den DN des Clients. Der ist jedoch optisch nicht so toll (z.b. CN=Extended Manager,CN=PCNAME,OU=xy,OU=xyz,DC=test,DC=de) und nicht direkt verwertbar.

Schöner und besser wäre es, wenn ich hier den Value aus dem Attribut "name" der Objektklasse "computer" erhalten würde.

Link zu diesem Kommentar

Ok, dann musst du denn String den du von


objRecordSet.Fields("distinguishedName").Value
[/Code]

bekommst, aufsplitten (als Trenner am günstigsten "," verwenden ;) ), das enstehende Array nehmen, davon die zweite Position

[Code]
CN=PCNAME
[/Code]

und davon die ersten 3 Zeichen abschneiden...

 

Dazu kann ich dir die Stringfunktionen Split wärmstens empfehlen ;)

 

VB String Examples: Split String into Array of Words

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...