Powershell 扩展System.DirectoryServices.DirectoryEntry的大小限制

Powershell 扩展System.DirectoryServices.DirectoryEntry的大小限制,powershell,active-directory,Powershell,Active Directory,tl;博士如何在修改广告组时克服System.DirectoryServices.DirectoryEntry1500个成员的大小限制 在过去,我制作了一个powershell脚本,基本上扫描(现在超过)50个成员的广告位置,并将它们全部添加到一个公共组中。此处提供完整的文档和来源: 我使用以下对象来容纳组中的所有成员: $oGroup = New-Object -TypeName System.DirectoryServices.DirectoryEntry -ArgumentList "$L

tl;博士如何在修改广告组时克服System.DirectoryServices.DirectoryEntry1500个成员的大小限制

在过去,我制作了一个powershell脚本,基本上扫描(现在超过)50个成员的广告位置,并将它们全部添加到一个公共组中。此处提供完整的文档和来源:

我使用以下对象来容纳组中的所有成员:

$oGroup = New-Object -TypeName System.DirectoryServices.DirectoryEntry -ArgumentList "$LDAP/$GroupDN", $sUser, $sPass
并使用以下两个命令首先添加新成员,然后删除过期成员:

$oGroup.Invoke("add", "$LDAP/$userDN")
$oGroup.Invoke("remove","$LDAP/$Member")
搜索完成后,我使用以下命令将更改提交给AD:

$oGroup.CommitChanges()
$oGroup.RefreshCache()
$oGroup.Close()
除了我现在发现
System.DirectoryServices.DirectoryEntry
有一个大小限制,它将大小截断为1500个成员

我一直在网上搜索,并找到了几种方法来克服阅读群时的大小限制,使用了各种方法来分块日期。但是现在这些都可以在这种情况下使用,因为我需要创建一个拥有1500多个成员的广告组

对于解决方案的建议或建议,我们将不胜感激。



注1:是的,我可以交换“添加”和“删除”的顺序,或许可以保存一些条目,但我缺少百分之一百的成员,因此这是不够的。)

您不能在
<1500
的批次中多次执行该操作吗?不幸的是,我没有看到将组的写入拆分为AD的句柄(读取是另一回事)添加1500名成员后,只需调用
CommitChanges
,然后再添加1500名,然后再次调用
CommitChanges
。。。重复一遍。@GabrielLuci你试过了吗,成功了?我记得在读到增加1500名成员后,额外的add将被忽略。我明天会进一步调查的。我还没试过,没有。但一定有可能。也许我明天回去工作的时候会试试。