如何获取 Exchange 2007 中所有通讯组及其成员的列表?

Rob*_*rke 2 email windows powershell exchange distribution-lists

我希望获得 Exchange 中所有分发列表及其成员的列表?这是否可以使用任何内置的 Exchange 工具?电源外壳?第三方工具?

小智 6

通讯组存储在 Active Directory 中。此 Powershell 脚本将列出 AD 域中的所有通讯组及其成员。如果您最终将它们存储为安全组,请删除“(|(groupType=2)(groupType=4)(groupType=8))”。

$strFilter = "(&(objectCategory=Group)(|(groupType=2)(groupType=4)(groupType=8)))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$objSearcher.PropertiesToLoad.Add("cn") | Out-Null
$objSearcher.PropertiesToLoad.Add("member") | Out-Null

$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults){
    $objItem = $objResult.Properties;
    Write-Output $objItem.cn
    foreach ($objMember in $objItem.member) {
        Write-Output "   $objMember"
    }
}
Run Code Online (Sandbox Code Playgroud)