Avatar billede Slettet bruger
23. februar 2005 - 14:47 Der er 2 kommentarer og
1 løsning

Find alle objekter i et OU

Er der en query i LDAP, hvor man kan få alle objekter i et OU (Organizational Unit) i Active Directory?

Jeg har prøvet noget med:

(objectCategory=*)(OU=<navn på OU>,DC=<domæne>,DC=dk)

- uden held...
Avatar billede holmus Nybegynder
23. februar 2005 - 15:22 #1
Måske noget i denne stil:
On Error Resume Next

Set objContainer = GetObject _
    ("LDAP://ou=Sales,dc=NA,dc=fabrikam,dc=com")

strGpLink = objContainer.Get("gPLink")
intGpOptions = objContainer.Get("gPOptions")

If strGpLink <> " " Then
    arrGpLinkItems = Split(strGpLink,"]")
    For i = UBound(arrGPLinkItems) to LBound(arrGpLinkItems) + 1 Step -1
        arrGPLink = Split(arrGpLinkItems(i-1),";")
        strDNGPLink = Mid(arrGPLink(0),9)
        WScript.Echo GetGPOName
        Select Case arrGPLink(1)
        Case 0
            WScript.Echo "No Override is cleared and the GPO is enabled."
        Case 1
            WScript.Echo "No Override is cleared and the GPO is disabled."
        Case 2
            WScript.Echo "No Override is checked and the GPO is enabled."
        Case 3
            WScript.Echo "No Override is checked and the GPO is disabled."
      End Select
    Next
    WScript.Echo VbCrLf
End If

If intGpOptions = 1 Then
    WScript.Echo "Block Policy Inheritance is checked."
Else
    WScript.Echo "Block Policy Inheritance is not checked."
End If
   
Function GetGPOName
    Set objConnection = CreateObject("ADODB.Connection") 
    objConnection.Open "Provider=ADsDSOObject;" 

    Set objCommand = CreateObject("ADODB.Command")
    objCommand.ActiveConnection = objConnection

    objCommand.CommandText = _
        "<LDAP://cn=Policies,cn=System,dc=NA,dc=fabrikam,dc=com>;;" & _
            "distinguishedName,displayName;onelevel"
    Set objRecordSet = objCommand.Execute

    Do Until objRecordSet.EOF
        If objRecordSet.Fields("distinguishedName") = strDNGPLink Then
            GetGPOName = objRecordSet.Fields("displayName")
            objConnection.Close
            Exit Function
      End If
      objRecordSet.MoveNext
    Loop
    objConnection.Close
End Function

Ellers kig evt. mere her:
http://www.microsoft.com/technet/scriptcenter/scripts/ad/ous/default.mspx

/holmus
Avatar billede serverservice Praktikant
09. marts 2005 - 09:08 #2
Ja det burde være muligt , prøv med nogle af de nye script kommandoer dsget eller dsquery til AD - de er lidt nemmere at gå til. Har ikke lige et forslg ved hånden , men vender tilbage hvis jeg finder noget .
Avatar billede Slettet bruger
09. marts 2005 - 09:36 #3
Jeg har fundet ud af, at det ikke er muligt at søge efter alle objekter i en bestemt OU. Jeg løste det ved at give alle objekter i OU'en et fælles attribut, så jeg kan få alle objekter ved at søge i AD ved hjælp af det nævnte attribut.

dannyboyd: Gider du ikke at lægge et svar, så du og holmus kan dele pointen?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester