Итак, я работаю в PowerShell, чтобы извлечь некоторые данные с моего сервера обмена.
Я хочу получить следующие поля из списка рассылки.
Отображаемое имя, Имя учетной записи SAM, Основной SMTP-адрес, Принятые отправители, Модерация включена, ModeratedBy, Только для внутренних отправителей и Управляется.
Для этого я использую приведенный ниже скрипт.
$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 электронной почты является первым. last@company.com, в то время как отображаемые имена - Last, First, часто с дополнительными словами, такими как неактивные и смешанные.
У меня есть смог отформатировать данные для управляемых и принятых отправителей так, чтобы имена отображались первыми последними, если только одно имя и у него нет дополнительных слов в отображаемом имени, но я не могу его вставить период, чтобы я мог направить вывод в запрос get-aduser для SMTP.
В любом случае, дайте мне знать, если вы можете помочь.
Райан