2012-08-16 66 views
2

我想獲得某個分發列表的所有成員(郵件地址)。 目前我剛剛收到了第1500名會員。我的腳本如下所示:總是使用PowerShell獲得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個用戶。無論如何,我需要擴大最大接收組員人數。

+1

您需要查看'DirectorySearcher'的[PageSize'屬性([MSDN文檔](http://msdn.microsoft.com/zh-cn/library/system.directoryservices.directorysearcher.pagesize.aspx)) - 將該值設置爲某些值(而不是將其保留爲0)將開始「分頁搜索」以允許AD返回超過1500個成員 – 2012-08-16 09:38:24

+0

我不使用DirectorySe射手。不過,我用DirectorySearcher試了一下。我將pageSize增加到3000.問題是成員是DirectorySearcher Result的一個屬性。所以我認爲PageSize只是指這個而不是指屬性。 – andreaspfr 2012-08-16 09:49:10

回答

2

你需要改變你的代碼使用DirectorySearcher方法,以及的的DirectorySearcher

check out the PageSize property設置該值的東西(而不是離開它0)將開始分頁搜索允許AD返回不止1500名成員。建議將PageSize設置爲500或1000這樣的合理值 - 如果將其設置得太高(高於系統限制1500),則將被忽略並且不起作用!

查看如何解決這個問題的一些其他的博客文章:

+1

你在考慮#對象,而不是#的值。看到我的回答(即將發佈:)) – 2012-08-23 20:44:38

+0

此外,切換到memberOf而不僅僅是爲成員進行遠程檢索不是一個好的途徑......它有其他副作用,你不打算(不' t工作良好x域無w追蹤引薦,安全可視性問題,...) – 2012-09-05 04:08:12

0

這將工作相當不錯,需要的Active Directory模塊

(GET-廣告組$組成員-Properties).members