Exchange server 获取DL的成员

Exchange server 获取DL的成员,exchange-server,powershell-3.0,Exchange Server,Powershell 3.0,我的问题似乎很基本,但到目前为止,我已经花了几个小时试图弄明白。基本上,目标是搜索阻止DL(通讯组列表)成员发送外部电子邮件的传输规则。然后也显示该DL的成员 下面的代码可以在“FromMemberOf”中显示传输规则和DL值,但不显示其成员。例如,如果我只运行$dl_info.FromMemberOf,它确实显示了dl组,因此我确信它正在被拾取(请参见附件屏幕截图),因此我在使用foreach objct时尝试将其用作我的数组。我还注意到它被称为RawIdentity,我没有定义它。有什么想法

我的问题似乎很基本,但到目前为止,我已经花了几个小时试图弄明白。基本上,目标是搜索阻止DL(通讯组列表)成员发送外部电子邮件的传输规则。然后也显示该DL的成员

下面的代码可以在“FromMemberOf”中显示传输规则和DL值,但不显示其成员。例如,如果我只运行$dl_info.FromMemberOf,它确实显示了dl组,因此我确信它正在被拾取(请参见附件屏幕截图),因此我在使用foreach objct时尝试将其用作我的数组。我还注意到它被称为RawIdentity,我没有定义它。有什么想法吗

param(
    [parameter(Mandatory=$true)]
    [string]$sid = "SID",
    [parameter(Mandatory=$true)]
    [string[]]$ExchGuid = "ruleid"
)

$dl_info = @()
foreach ($rule in $ExchGuid){

    $dl_info += Get-TransportRule | where {$_.guid -eq $rule} | select Priority, name, RejectMessageEnhancedStatusCode, ExceptIfFromMemberOf, FromMemberOf, @{n="DL_Block_Members";e={$dl_info.FromMemberof | ForEach-Object (Get-DistributionGroupMember $_ -ResultSize unlimited | select name)}}
}

$dl_info

我能够通过使用Pscustomobject解决它。它可以显示DL成员,但我必须处理脚本才能搜索帐户成员。那就改天吧

param(
    [parameter(Mandatory=$true)][string]$sid = "sid",
    [parameter(Mandatory=$true)][string[]]$ExchGuid = "ruleid"
)


$TRule_Info = @()
$DL_Info = @()

foreach ($rule in $ExchGuid){
    $TRule_Info = Get-TransportRule | where guid -EQ $rule
        foreach ($group in $TRule_Info){
            $ht = [pscustomobject]@{
            SID = $sid
            RuleName  = $TRule_Info.Name
            DL_Group_Exemption = $TRule_Info.ExceptIfFromMemberOf
            DL_BlockGroup_Members = $TRule_Info.FromMemberOf
            }
$DL_Info += $ht
        }
}

$DL_Info