我想获得某个通讯组列表的所有成员(邮件地址)。目前我只接收前1500名成员。我的脚本如下所示:
$group = [ADSI]"LDAP://CN=distListOne,OU=Groups,DC=XYZ,DC=XYZ"
$group.member.count ##Always 1500
foreach($member in $group.member)
{
$filter = "LDAP://"+$member
$user = [ADSI]$filter
$user.properties.mail | out-file "C:\distrUser.txt" -append
}
我知道有超过1500个用户在分发列表中。我需要无论如何扩大最大接收组成员。
3条答案
按热度按时间8ljdwjyq1#
您需要更改代码以使用DirectorySearcher的
DirectorySearcher
方法和check out the PageSize property将该值设置为某个值(而不是将其保留为0)将启动 * 分页搜索 *,以允许AD返回超过1500个成员。建议将
PageSize
设置为合理的值,如500或1000 -如果您设置太高(高于系统限制的1500),它将被忽略并且不会工作!看看其他博客文章如何解决这个问题:
iaqfqrcu2#
当检索一个大的属性时,你需要批量请求其中的值。这在目录中通常被称为“范围检索”。几乎所有表现良好的MSFT LDAP API都支持这一点,包括ADSI... http://msdn.microsoft.com/en-us/library/windows/desktop/ms676302(v=vs.85).aspx
7vux5j2d3#
这将工作得很好,需要活动目录模块
(Get-ADGroup $Group -Properties members).members