1
AD 그룹에 추가해야하는 사용자 수가 매우 많습니다. 나는 모든 사용자가 SAMAccountNames
을 datagridview에 저장했습니다.AD 그룹에 여러 사용자 추가 * 신속하게 AccountManagement 사용
아래 코드는 작동하지만 느리게 진행됩니다. g.members.add
으로 전화하면 각 사용자에게 직접 쿼리하는 것과 같습니다. 추가 방법이 더 효율적입니까?
For Each r As DataGridViewRow In dgvFinalUsers.Rows
Dim userName As String = r.Cells(0).Value
If Not g.Members.Contains(ctx, IdentityType.SamAccountName, userName) Then
g.Members.Add(ctx, IdentityType.SamAccountName, userName)
i += 1
Debug.Print(i)
End If
Next
g.save
그는 아닌 inmemory 컬렉션에 광고 그룹에 사용자를 추가 할 소리. –
@WiktorZychla [비슷한 문제가 발생했습니다] (http://stackoverflow.com/questions/2409432/improving-performance-of-system-directoryservices-accountmanagement) 내 코딩 너무. DirectyServices의 많은 메소드는 'Members'와 같은 결과를 캐시하지 않으므로 매번 다시 쿼리됩니다. 현재 그룹에 속한 멤버들의리스트를 메모리 콜렉션에 복사하는 것은 실제로'g.Members.Contains' 호출의 속도를 높입니다. –
@WiktorZychla는이 방법을 추가함으로써 반복 할 때마다 AD를 쿼리하지 않아도됩니다. 따라서 프로세스 속도가 빨라집니다. –