3

我想获取某个分发列表的所有成员(邮件地址)。目前我只收到前 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 个用户。无论如何,我需要扩展最大接收组成员。

4

3 回答 3

3

您需要更改代码以使用DirectorySearcher方法,并查看DirectorySearcher的 PageSize 属性

将该值设置为某个值(而不是将其保留为 0)将开始分页搜索以允许 AD 返回超过 1500 个成员。建议将其设置PageSize为合理的值,如 500 或 1000 - 如果设置得太高(高于系统限制 1500),它将被忽略并且不起作用!

请参阅其他有关如何解决此问题的博客文章:

于 2012-08-16T09:54:04.543 回答
3

检索大属性时,您需要分批请求其中的值。这在目录语中通常称为“范围检索”。几乎所有表现良好的 MSFT LDAP API 都支持这一点,包括 ADSI ... http://msdn.microsoft.com/en-us/library/windows/desktop/ms676302(v=vs.85).aspx

于 2012-08-23T20:46:09.287 回答
0

这会很好地工作,需要活动目录模块

(Get-ADGroup $Group -Properties members).members

于 2018-02-27T20:52:23.000 回答