2013-10-01 8 views
5

Mam listę ciągów, których używam do przechowywania listy ponad 6000 użytkowników "nativeGUID.Dodawanie dużej liczby użytkowników do grupy w usłudze Active Directory

Używam Linq, aby przekonwertować je na tablicę ciągów w formacie <GUID=nativeGUID>, a następnie użyć DirectoryEntry.Properties["member"].AddRange(), aby dodać je do mojej grupy w Active Directory.

Kiedy zadzwonię pod numer DirectoryEntry.CommitChanges(), aby zatwierdzić zmiany w AD, jego ukończenie zajmie około 20 minut.

Czy istnieje szybszy sposób dodawania dużej liczby użytkowników do grupy przy użyciu ich nativeGUID?

+0

Rozważ przeprowadzenie kilku testów, w których grupa została usunięta, a następnie dodana przez 6000 członków. Może to zwiększyć wydajność do akceptowalnego poziomu. –

+1

spróbuj użyć Parallel.ForEach w tablicy GUID wywołującej zatwierdzenie w każdej iteracji? Zauważ, że struktura .net zmieniła się niezmiennie od tego postu. –

Odpowiedz

0

Można użyć PowerShell:

Import-Module "Ad*"; 
Add-AdGroupMember -Identity GROUP-GUID -Members "GUID, GUID, GUID"; 

Można także zastąpić wartość użytkowników z tablicą GUID lub z tablicą obiektów użytkowników.

+0

W jaki sposób poprawia to wydajność? Ważną rzeczą, na którą warto zwrócić uwagę, jest to, że teraz przenosisz wymagane przetwarzanie do całkowicie oddzielnego procesu, co utrudni monitorowanie błędów i reagowanie na nie. –

Powiązane problemy