2015-03-20 5 views
0

J'ai un script powershell qui est censé vider une liste de distribution. Il obtient la liste des membres dans un tableau. Il redirige ensuite le tableau vers Remove-DistributionGroupMember. Chaque course aura des membres qui jetteront des erreurs 'X n'est pas un membre du groupe Y'. À la fin de la boucle, je ré-énumérer les utilisateurs et pour tout le monde qui n'est pas un membre du groupe 'erreur s'est levée, est toujours un membre du groupe. Ce n'est pas cohérent. Parfois, tout fonctionne, mais généralement, différents membres du groupe échouent.Powershell Supprimer des membres de DLs dit pas là, mais ils sont

$grp = (Get-DistributionGroup -Identity:$DLIST -ErrorAction:Stop) 
$members = (Get-DistributionGroupMember -Identity:$grp -ErrorAction:Stop) 
$members | % { 
    $member = $_ 
    try { 
     Remove-DistributionGroupMember -Identity:$grp -Member:$_ -Confirm:$false -WarningAction:Stop -ErrorAction:Stop 
     } 
    catch { 
     $LogStream.WriteLine((Get-Date).toString() + " Error removing ${member}:`n" + $_.toString()) 
     } 
    } 
$members = (Get-DistributionGroupMember -Identity:$grp -ErrorAction:Stop) 
write-host "Users in List:" 
$members | % { $LogStream.WriteLine(" " + $_.ToString())} 

3/20/2015 5:06:55 AM Erreur suppression xxxxx.xxxx.com/North Amérique/Spokane/Utilisateurs/XXXXX: Le destinataire « xxxx.xxxx.com/North America/Spokane/Users/XXXXX "n'est pas un membre du groupe" CN = * YYYYY, OU = IT, DC = xxxxxxx, DC = xxxx, DC = com ".

utilisateurs dans la liste:

xxxxx.xxxx.com/North Amérique/Spokane/Utilisateurs/XXXXX

+0

_est-il encore membre du groupe_ Comment le confirmez-vous? Cela semble être un problème de réplication entre DC. PowerShell parle à un et vous regardez l'autre avec AD par exemple – Matt

+0

Dans le même script, juste après les suppressions, je fais un autre Get-DistributionGroupMember. Pour chaque membre qui a renvoyé l'erreur "n'est pas membre", ils apparaissent dans la liste des membres du groupe. Chaque cmdlet crée-t-elle une nouvelle connexion à AD? Si oui, y a-t-il un moyen pour que le script se connecte une fois et reste avec le DC? – jmccanta

Répondre

0

Essayez d'ajouter ceci au début de votre script:

Set-ADServerSettings -ViewEntireForest $true 

Et J'ajouterais également le -ResultSize "Unlimited" à vos commandes Get-.