【发布时间】:2020-01-30 08:53:26
【问题描述】:
所以,我回来询问有关获取已接受发件人、ModeratedBy 和 ManagedBy 的通讯组 SMTP 地址的更多问题。
所以我得到的脚本几乎可以完美运行。但是,当我使用显示名称从 acceptmessagesonlyfromsendorsormembers 中提取 smtp 地址列表时,除非名称中包含特殊字符或其他空格,否则它会起作用。所以显示名称的格式是“Last, First”,只要格式遵循这个规则,我们就可以了。但是,如果姓氏中有空格,例如“Mac Gruber, Steven”或“#IT-Dept”,则不会获取 SMTP 地址。
我很确定问题出在我用来从 acceptmessagesonlyfromsendersormembers 属性中列出的规范名称列表中获取显示名称的拆分逻辑中。
脚本如下。
$props = @(
"DisplayName"
"SamAccountName"
"PrimarySmtpAddress"
@{n='Accepted Senders';e= {($_.acceptmessagesonlyfromsendersormembers | Foreach-Object {
(Get-AdUser -Filter "DisplayName -eq '$($_.Split('/')][-1])'" -Property ProxyAddresses |
Select-Object -Expand ProxyAddresses | Where-Object {$_ -cmatch '^SMTP:'}) -replace '^SMTP:'}) -join '; '}}
"ModerationEnabled"
@{N="ModeratedBy";E= {($_.ModeratedBy | ForEach-Object {
(Get-AdUser -Filter "DisplayName -eq '$($_.Split("/")[-1])'" -Property ProxyAddresses |
Select-Object -Expand ProxyAddresses | Where-Object {$_ -cmatch '^SMTP:'}) -replace '^SMTP:'}) -join '; '}}
@{Name="Internal Senders Only";E={$_.RequireSenderAuthenticationEnabled}}
@{N="ManagedBy";E= {($_.ManagedBy | ForEach-Object {
(Get-AdUser -Filter "DisplayName -eq '$($_.Split("/")[-1])'" -Property ProxyAddresses |
Select-Object -Expand ProxyAddresses | Where-Object {$_ -cmatch '^SMTP:'}) -replace '^SMTP:'}) -join '; '}}
)
Get-DistributionGroup -ResultSize Unlimited | Select-Object $props -First 1000 | export-Csv x:\xxx.csv -NoTypeInformation
一如既往,我们非常感谢任何帮助。
瑞恩
【问题讨论】:
-
所以我想真正的问题是......当
Get-ADUser接受-identity参数的 DistinguishedName 时,您为什么要尝试从 DistinguishedName 中解析 DisplayName,所以您甚至不需要使用-filter,它只是Get-ADUser $_ -property ProxyAddresses -
好的,尝试使用您建议的方法进行更新,但它没有返回任何接受的发件人的电子邮件地址,由管理或主持。作为参考,这里是我更新的内容。我无法复制整个内容,所以我只是把我从接受的发件人 $prop
@{ n="Accepted Senders" e={($_.acceptmessagesonlyfromsendersormembers | Foreach-Object { (Get-AdUser $_ -property ProxyAddresses | Select -Expand ProxyAddresses | Where-Object {$_ -cmatch '^SMTP:'}) -replace '^SMTP:'}) -join ';'} }中更改的内容 -
抱歉,输出的不是 DistinguishedName,而是 CanonicalName,Get-ADUser 不接受我能确定的 CN。另外,我似乎也无法过滤它。如果你有办法做到这一点,那就太棒了。
-
编辑帖子以反映 CN 而不是 DN
标签: powershell exchange-server-2013