Hur går jag tillväga om jag vill lista alla användare i ett visst OU? Testa med följande kodsnutt, behöver byta ut domännamnet mot ditt eget samt byta ut användar namnet snobben mot ditt för att scriptet ska fungera som det är. Jag tror inte OU och grupp är samma sak?!? eller är det jag som har missförstått något det har jag inte påstått heller, jag tog upp ett exempel som traversera genom grupper som en specifik användare är medlem av... WinNT är bra om man ska sätta och läsa inställningar för användare och datorer ex.vis i ADit Testa den här koden, jag använde den för en CN, en användare men genom att baraAD: Lista användare i ett visst OU
Sv: AD: Lista användare i ett visst OU
Det den gör idag är att visa vilka grupper en användare hör till...
För att få den att lista alla medlemmar i en grupp är det bara att ändra filtret till förmodligen Members eller Users eller något liknande, går säkert att hitta vad på msdn siten.
<code>
strComputer = "DOMAIN"
Set colGroups = GetObject("WinNT://" & strComputer & "")
colGroups.Filter = Array("group")
For Each objGroup In colGroups
For Each objUser in objGroup.Members
If objUser.name = "snobben" Then
Wscript.Echo objGroup.Name
End If
Next
Next
</code>Sv: AD: Lista användare i ett visst OU
Sv: AD: Lista användare i ett visst OU
det här scriptet använder sig utav WinNT gränssnittet, det finns även exempel med LDAP och där kan du ange OU och sedan traversera genom....
kan kolla upp ett exem jag har som använder sig utav LDAP om du vill.Sv: AD: Lista användare i ett visst OU
köra OU får man hela gruppen i OUn, sen är det bara att iterera genom den...
Koden är som sagt inte flyg färdig pga att jag joxat loss i den för att anpassa den lite för dig, men i stort ska den funka... säg till om du behöver mer hjälp.
<code>
Dim objCon, objCom, objRS
Dim iNo
Dim strADsPath
Dim fld
Set objCon = Server.CreateObject("ADODB.Connection")
Set objCom = Server.CreateObject("ADODB.Command")
objCon.Provider = "ADsDSOObject"
' Konto med rättigheter mot ADet, ditt eget, läsrättigheter behövs
objCon.Properties("User ID") = "domain\uname"
objCon.Properties("Password") = "pwd"
objCon.Properties("Encrypt Password") = False
objCon.Open "Active Directory Provider"
Set objCom.ActiveConnection = objCon
strADsPath = "LDAP://PDC/OU=goofy,DC=microsoft,DC=com"
objCom.CommandText = "SELECT sAMAccountName, mail, sn, givenName, DisplayName, cn FROM '" & strADsPath & "' " & _
"WHERE objectCategory = 'Person' AND objectClass = 'user' " objCom.Properties("searchscope") = 2
On Error Resume Next
Set objRS = objCOM.Execute
If err.number <> 0 Then
Response.Write "Ett fel uppstod<br/>" & vbCrLf
Response.Write "Err.Src: " & err.Source & "<br/>" & vbCrLf
Response.Write "Err.Desc: " & err.Description & "<br/>" & vbCrLf
Response.Write "Err.No: " & err.number & "<br/>" & vbCrLf
Response.End
End If
If objRS.EOF And objRS.BOF Then
Response.Write "The recordset was empty."
Response.End
Else
While Not objRS.EOF
Response.Write "=====================" & "<br/>" & vbCrLf
Response.Write "= Number: " & iNo & "<br/>" & vbCrLf
Response.Write "=====================" & "<br/>" & vbCrLf
Response.Write "ADsPath: " & objRS.Fields(4).Value & "<br />" & vbCrLf
Response.Write "ADsPath: " & objRS.Fields(3).Value & "<br />" & vbCrLf
Response.Write "ADsPath: " & objRS.Fields(2).Value & "<br />" & vbCrLf
Response.Write "uid: " & objRS.Fields(1).Value & "<br />" & vbCrLf
Response.Write "givenName: " & objRS.Fields(0).Value & "<br />" & vbCrLf
iNo = iNo + 1
objRS.MoveNext
Wend
End If
</code>