始终使用PowerShell获得1500个分发列表成员

时间:2012-08-16 09:29:42

标签: powershell active-directory member distribution-list

我想获得某个分发列表的所有成员(邮件地址)。 目前我刚刚收到了前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 个答案:

答案 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