AD Limite von 1000 Members?
From: dani kovac (anonymous_at_discussions.microsoft.com)
Date: 03/24/05
- Next message: Karsten Heimer: "Re: VS-Designer, geerbtes Fomular, Buttons mit Anchor veschoben"
- Previous message: Daniel: "Re: VS-Designer, geerbtes Fomular, Buttons mit Anchor veschoben"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 24 Mar 2005 02:18:04 -0800
Hallo NG
Ich habe den folgenden Code gefunden mit dem man die
Limite von 1000 Members umgehen kann:
=================================================00
Dim propValues As PropertyValueCollection
Dim propValue As Object
Dim attributeValues As PropertyValueCollection
Dim values As ArrayList
Dim currentRange As String
Dim startCount As Integer
Dim endCount As Integer
Dim iteration As Integer
Dim increment As Integer = 1000
Dim expectedErrorCode As Integer = -2147016672
'This optimization reads the attributey
directly if it
'contains less than 1000 values and returns an
arraylist based
'on that. If we have 1000 values, we assume
that there are
likely more than
'1000 values and we resort to the slower
attribute ranging
method
'done below
entry.RefreshCache(New String()
{attributeName})
attributeValues = entry.Properties
(attributeName)
If attributeValues.Count < 1000 Then
Dim memberValue As Object
values = New ArrayList
(attributeValues.Count)
For Each memberValue In attributeValues
values.Add(memberValue)
Next
values.TrimToSize()
Return values
End If
'here we go into ranging mode
values = New ArrayList(1000)
Do
startCount = iteration * increment
endCount = (iteration + 1) * increment - 1
'This is the attribute ranging method for
retrieving the
contents of large attributes
currentRange = String.Format("{0};Range=
{1}-{2}",
attributeName, startCount, endCount)
'this will throw when the lower bound on
the range is too
high
Try
entry.RefreshCache(New String()
{currentRange})
Catch e As COMException 'I might check for
the expected
hresult, but I don't know if I need to
Exit Do
End Try
'Get the values for for the current range
of attributes
propValues = entry.Properties
(attributeName)
For Each propValue In propValues
values.Add(propValue)
Next
iteration += 1
values.Capacity += increment
Loop
values.TrimToSize()
Return values
End Function
======================================================
Der code liefert aber nur erste 1000 Einträge zurück!!!???
Irgendwie scheint die Funktion:
entry.RefreshCache(New String() {currentRange})
nicht richtig zu tun!
Und wenn ich die variable Increment auf 100 setze, dann
erhalte ich Einträge bis zu 999, danach geht's nicht mehr!
Weiss jemand ob es zusätzlich eine einstellung im AD
benötigt, damit diese:
entry.RefreshCache(New String() {currentRange})
Funktion im VB Code ausgeführt werden kann?
Oder kennt jemand vielleicht einen anderen Weg wie ich die
Limite umgehen kann?
PS: Hab ich das richtig bemerkt: NUR DIE ANZAHL DER
EIGENSCHAFTEN EINES OBJEKTEN IST AUF 1000 LIMITIER? Wenn
ich mit FOR EACH Schleife die Childern oder Members einer
OU auslese, gibt es bei mir keine Einschränkung was die
Anzahl Members betrift (soweit konnte ich das bisher
feststellen)!
Für einen hinweis oder Hilfe, vielen Dank bereits im
Voraus.
Gruss
- Next message: Karsten Heimer: "Re: VS-Designer, geerbtes Fomular, Buttons mit Anchor veschoben"
- Previous message: Daniel: "Re: VS-Designer, geerbtes Fomular, Buttons mit Anchor veschoben"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|