Jump to content

Leere OU(-Struktur) finden


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

Empfohlene Beiträge

Hallo,

 

gibt es per WSH eine Möglichkeit leere OUs einer Domäne herauszusuchen?

 

Ich habe dieses Script dazu gefunden:

 

Option Explicit

 

Dim adoCommand, adoConnection, strBase, strFilter, strAttributes

Dim objRootDSE, strDNSDomain, strQuery, adoRecordset, strADsPath

Dim objOU, lngCount, objChild

 

' Setup ADO objects.

Set adoCommand = CreateObject("ADODB.Command")

Set adoConnection = CreateObject("ADODB.Connection")

adoConnection.Provider = "ADsDSOObject"

adoConnection.Open "Active Directory Provider"

Set adoCommand.ActiveConnection = adoConnection

 

' Search entire Active Directory domain.

Set objRootDSE = GetObject("LDAP://RootDSE")

strDNSDomain = objRootDSE.Get("defaultNamingContext")

strBase = "<LDAP://" & strDNSDomain & ">"

 

' Filter on all OU objects.

strFilter = "(objectCategory=organizationalUnit)"

 

' Comma delimited list of attribute values to retrieve.

strAttributes = "ADsPath"

 

' Construct the LDAP syntax query.

strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"

adoCommand.CommandText = strQuery

adoCommand.Properties("Page Size") = 100

adoCommand.Properties("Timeout") = 30

adoCommand.Properties("Cache Results") = False

 

' Run the query.

Set adoRecordset = adoCommand.Execute

 

' Enumerate the resulting recordset.

Wscript.Echo "Empty organizational Units:"

Do Until adoRecordset.EOF

' Retrieve values.

strADsPath = adoRecordset.Fields("ADsPath").Value

' Bind to the OU object.

Set objOU = GetObject(strADsPath)

' Check if empty.

lngCount = 0

For Each objChild In objOU

lngCount = lngCount + 1

Exit For

Next

If (lngCount = 0) Then

Wscript.Echo objOU.distinguishedName

End If

' Move to the next record in the recordset.

adoRecordset.MoveNext

Loop

 

' Clean up.

adoRecordset.Close

adoConnection.Close

 

 

An sich funktioniert das schon ganz gut. Es wäre genial, wenn dann nur die erste (Parent-)OU ausgegeben wird, wenn sich mehrere leere OUs unterhalb davon befinden.

 

Kann mir da einer weiterhelfen?

 

Vielen Dank! :)

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