2013-10-01 17 views
5

Ich habe eine Liste von Zeichenfolgen, die ich verwende, um eine Liste von mehr als 6000 Benutzern nativeGUID zu halten.Hinzufügen einer großen Anzahl von Benutzern zu einer Gruppe in Active Directory

Ich benutze Linq, um sie in ein Array von Zeichenfolgen im Format <GUID=nativeGUID> zu konvertieren und dann DirectoryEntry.Properties["member"].AddRange() zu verwenden, um sie zu meiner Gruppe in Active Directory hinzuzufügen.

Wenn ich DirectoryEntry.CommitChanges() aufrufen, um Änderungen an AD zu committen, dauert es ungefähr 20 Minuten.

Gibt es eine schnellere Möglichkeit, eine große Anzahl von Benutzern zu einer Gruppe hinzuzufügen, die ihre nativeGUID verwenden?

+0

Führen Sie einige Tests durch, bei denen die Gruppe entfernt wird, und fügen Sie dann die 6000 Mitglieder hinzu. Dies könnte die Leistung auf ein akzeptables Niveau erhöhen. –

+1

Versuchen Sie, eine Parallel.ForEach für das Array von GUIDs zu verwenden, die in jeder Iteration commit aufrufen? Beachten Sie auch, dass sich das .net-Framework seit diesem Post eindeutig geändert hat. –

Antwort

0

Sie können Powershell verwenden:

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

Sie können auch mit einer Reihe von GUIDs oder mit einer Reihe von Benutzerobjekten, die Mitglieder Wert ersetzen.

+0

Wie verbessert dies die Leistung? Das Wichtigste, was Sie über Ihre Antwort wissen sollten, ist, dass Sie jetzt die erforderliche Verarbeitung auf einen völlig separaten Prozess verlagern, wodurch es schwieriger wird, auf Fehler zu überwachen und darauf zu reagieren. –