Итак, я работаю в 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 имеет формат [email protected], а отображаемые имена - Last, First, часто с дополнительными словами, такими как неактивный и смешанный.
Мне удалось отформатировать данные для управляемых и принятых отправителей так, чтобы имена отображались как первые последние, пока есть только одно имя и у него нет дополнительных слов в отображаемом имени, но я не могу его передать вставьте точку, чтобы я мог передать вывод в запрос get-aduser для SMTP.
В любом случае, дайте мне знать, если сможете помочь.
Райан