所以我正在使用 PowerShell 从我的交换服务器中提取一些数据。
我希望从分发列表中获取以下字段。
显示名称、SAM 帐户名称、主要 SMTP 地址、接受的发件人、已启用审核、审核人、仅限内部发件人和管理人。
我正在使用以下脚本来执行此操作。
$props = @(
"DisplayName"
"SamAccountName"
"PrimarySmtpAddress"
@{Name="Accepted Senders";Expression= {(([string]($_.AcceptMessagesOnlyFromSendersOrMembers | foreach {$_.tostring().split("/")[-1]+';'})).TrimEnd(";") | foreach {$_.split(", ")[2,3,0]})}}
"ModerationEnabled"
@{Name="ModeratedBy";Expression= {([string]($_.ModeratedBy | foreach {$_.tostring().split("/")[-1]+';'})).TrimEnd(";")}}
@{Name="Internal Senders Only";E={$_.RequireSenderAuthenticationEnabled}}
@{Name="ManagedBy";E= {(([string]($_.ManagedBy | foreach {$_.tostring().split("/")[-1]+';'})).TrimEnd(";").split(", ")[2,3,0])}}
)
Get-DistributionGroup -ResultSize Unlimited | select $props | export-Csv x:\xxxxx\test6.csv -NoTypeInformation
基本上可以完美运行,除了列出了接受的发件人、ManagedBy 和 ModeratedBy 的显示名称,而不是 smtp 地址。
更有趣的是,电子邮件 smtp 格式为 first.last@company.com,而显示名称为 Last, First 通常带有附加词,例如 inactive 和 mix in。
我已经能够为 managedby 和接受的发件人格式化数据,以便只要只有一个名称并且显示名称中没有其他单词,名称就会显示为第一个最后一个,但我无法得到它插入一个句点,以便我可以将输出通过管道传输到 SMTP 的 get-aduser 请求。
无论如何,让我知道您是否可以提供帮助。
瑞安