2013-10-01 6 views
5

Ho un elenco di stringhe che uso per mantenere un elenco di più di 6000 utenti 'nativeGUID.Aggiunta di un numero elevato di utenti a un gruppo in Active Directory

Uso Linq per convertirli in una matrice di stringhe nel formato <GUID=nativeGUID> e quindi utilizzare DirectoryEntry.Properties["member"].AddRange() per aggiungerli al mio gruppo in Active Directory.

Quando chiamo DirectoryEntry.CommitChanges() per eseguire il commit delle modifiche ad AD, sono necessari circa 20 minuti.

C'è un modo più rapido per aggiungere grandi quantità di utenti a un gruppo usando il loro nativeGUID?

+0

Considerare l'esecuzione di alcuni test in cui il gruppo viene rimosso, quindi aggiunto con i 6000 membri. Ciò potrebbe aumentare le prestazioni a un livello accettabile. –

+1

prova a utilizzare un Parallel.ForEach sull'array di GUID che chiamano commit in ogni iterazione? Si noti inoltre che il framework .net è stato modificato in modo non rilevante da questo post. –

risposta

0

È possibile utilizzare PowerShell:

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

È anche possibile sostituire il valore Membri con una serie di GUID o con una serie di oggetti utente.

+0

In che modo migliora le prestazioni? La cosa importante da notare sulla tua risposta è che ora stai scaricando l'elaborazione richiesta in un processo completamente separato che renderà più difficile monitorare gli errori e rispondere ad essi. –