获取分发列表的所有成员包括邮件联系人

时间:2012-11-12 15:18:21

标签: powershell

我编写了一个小的PowerShell脚本来输出所有分发列表的所有成员(包括动态)。

$output = ""
$DLList = get-distributiongroup
foreach ($DL in $DLList) {
    $Dmember=get-distributiongroupmember $DL
    $Dname=$DL.name
    write-output "$Dname"
$output += "$Dname`r`n"
    foreach ($Member in $Dmember) {
        $MName=$Member.DisplayName
        write-output "-$MName"
    $output += "-$MName`r`n"
     }
     write-output ""
 $output += "`r`n"
}
$DDLList = get-dynamicdistributiongroup
foreach ($DL in $DDLList) {
    $Dmember=get-Recipient -Filter $DL.RecipientFilter
    $Dname=$DL.name
    write-output "$Dname"
$output += "$Dname`r`n"
    foreach ($Member in $Dmember) {
        $MName=$Member.DisplayName
        write-output "-$MName"
    $output += "-$MName`r`n"
    }
    write-output ""
$output += "`r`n"
}
$output | Tee-Object -file data.txt

除了我的一个DL包含邮件联系人之外,这个工作正常。有没有办法将它们包含在上面的脚本中?

感谢。

1 个答案:

答案 0 :(得分:0)

如果您使用Get-ADObject来检索联系人,则可以查询其MemberOf属性。它与您想要的相反,但是它可以工作。您可以使用此脚本,只需将-SearchBase的值更改为要查看的位置:

Get-ADObject -Filter * -SearchBase "OU=Contacts, DC=domain, DC=com" \
-Properties * | ?{$_.MemberOf -ne $null} | Select DisplayName, MemberOf