带有 Set-MailboxJunkEmailConfiguration 的数组中的 PowerShell 变量

PowerShell variables in Arrays with Set-MailboxJunkEmailConfiguration

我一直在研究如何使用 Exchange 2010 批量添加和删除用户邮箱安全发件人和安全收件人。似乎有更多关于小规模或单项实施的信息,但我无法获得完整翻译规模更大。

添加到安全 Senders/Recipients 可以很好地处理此问题:

#Test file with single entry
$testsites = (gc C:\temp\testsites.txt)

(get-mailbox -identity *) | foreach-object {set-mailboxjunkemailconfiguration -identity $_.alias -trustedsendersanddomains @{add=$testsites}}

我的问题是删除。据我所知,调整为以下脚本应该有效,但无效:

(get-mailbox -identity *) | foreach-object {set-mailboxjunkemailconfiguration -identity $_.alias -trustedsendersanddomains @{remove=$testsites}}

将文件的条目内容放在引号中,并使用删除确实有效:

(get-mailbox -identity *) | foreach-object {set-mailboxjunkemailconfiguration -identity $_.alias -trustedsendersanddomains @{remove="@test.com"}}

此脚本的最终目标是生成一个 CSV,其中包含添加或删除到 +1000 个邮箱的数十个条目。 get-content 或文本文件的使用主要用于测试目的,所以如果有其他方法,我会洗耳恭听。我很好奇是否有人知道为什么我可以添加但不能批量删除网站?

虽然这不是我最喜欢的解决方案,但我重写了脚本并弄清楚了如何批量删除。这是一种散弹枪方法,所以我不确定它是否接近最佳。

#Set what you want to remove (hashtable to variable)
$testsites = Get-MailboxJunkEmailConfiguration -Identity $Mailbox.Name -TrustedSendersAndDomains

#Pipe mailbox name properties to Set, and specify Remove
Set-MailboxJunkEmailConfiguration -Identity $Mailbox.Name -TrustedSendersAndDomains $Testsites.Remove

确认在多个开发环境中工作。