powershell - 分发列表中接受的发件人、ManagedBy 和 ModeratedBy 需要 SMTP 地址
问题描述
所以我正在使用 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 请求。
无论如何,让我知道您是否可以提供帮助。
瑞安
解决方案
如果您想与 AD 交互,您可以对计算的属性执行以下操作:
@{
n='Accepted Senders'
e={($_.acceptmessagesonlyfromsendersormembers | Foreach-Object {
(Get-AdUser -Filter "DisplayName -eq '$_'" -Property ProxyAddresses |
Select -Expand ProxyAddresses | Where-Object {$_ -cmatch '^SMTP:'}) -replace '^SMTP:'}) -join ';'}
}
我不知道你的代码$_.tostring().split("/")[-1]
是否给你带来了问题。但是,如果您需要该功能,您可以更改为以下内容:
@{
n='Accepted Senders'
e={($_.acceptmessagesonlyfromsendersormembers | Foreach-Object {
(Get-AdUser -Filter "DisplayName -eq '$($_.Split('/')[-1])'" -Property ProxyAddresses |
Select -Expand ProxyAddresses | Where-Object {$_ -cmatch '^SMTP:'}) -replace '^SMTP:'}) -join ';'}
}
推荐阅读
- ios - 离线支持的 Firebase 数据检索问题
- search - AspNetCore.OData 7.1.0“$search”查询选项不起作用
- scikit-learn - 使用类权重的网格搜索和 XGBClassifier
- docker - Docker Swarm - 守护进程重启后不启动服务
- mule - Mulesoft - 动态构建 JSON 列表
- clion - 如何在不依赖的情况下将 C++ 项目加载和索引到 CLion
- mongodb - 使用 Kotlin 的 spring-data-mongodb 上的 @Transient 在读取期间导致异常
- c# - 在方法中使用非抽象类型作为泛型类型的问题
- python-2.7 - 魔术方法 __repr__ 使用 __new__ 方法导致 AttributeError
- javascript - Vue PWA not getting new content after refresh