我想获得某个分发列表的所有成员(邮件地址)。 目前我刚刚收到了前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个用户。无论如何,我需要扩展最大的接收组成员。
答案 0 :(得分:3)
检索大型属性时,您需要批量询问其中的值。这在目录中通常称为“范围检索”。 几乎所有表现良好的MSFT LDAP API都支持此功能,包括ADSI ...... http://msdn.microsoft.com/en-us/library/windows/desktop/ms676302(v=vs.85).aspx
答案 1 :(得分:2)
您需要更改代码以使用DirectorySearcher
方法和DirectorySearcher的check out the PageSize property
将该值设置为某个值(而不是将其保留为0)将启动分页搜索以允许AD返回超过1500个成员。建议将PageSize
设置为合理的值,如500或1000 - 如果设置得太高(高于系统限制1500),将被忽略并赢得'工作!
请参阅其他一些有关如何解决此问题的博文:
答案 2 :(得分:0)
这将非常好用,需要活动目录模块
(Get-ADGroup $ Group -Properties成员).members