2017-02-01 2 views
0

J'ai recherché comment ajouter et supprimer en bloc des expéditeurs fiables et des destinataires sûrs de boîtes aux lettres utilisateur avec Exchange 2010. On dirait qu'il existe plus d'informations pour une implémentation à petite échelle ou à entrée unique. ne peut pas obtenir des choses à traduire à plus grande échelle.Variables PowerShell dans des tableaux avec Set-MailboxJunkEmailConfiguration

Ajout à des expéditeurs approuvés/destinataires fonctionne très bien avec ceci:

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

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

Mon problème est avec la suppression. A ma connaissance, ci-dessous l'ajustement du script devrait fonctionner, mais ne fonctionne pas:

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

Placer le contenu d'entrée du fichier entre guillemets, et l'utilisation supprimer fonctionne:

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

L'objectif final pour Ce script doit avoir un fichier CSV avec plusieurs douzaines d'entrées ajoutées ou supprimées à +1000 boîtes aux lettres. L'utilisation du fichier get-content ou du fichier texte est très utile pour les tests, donc s'il y a d'autres méthodes, je suis tout ouïe. J'étais juste curieux si quelqu'un avait un aperçu de pourquoi, comme écrit, je peux ajouter, mais ne peut pas supprimer des sites en vrac?

+0

Je serais également très réceptif à toute information en ligne concernant les tableaux PS et/ou les tables de hachage, et comment ils traitent les entrées. – lll

Répondre

0

Bien que ce ne soit pas ma solution préférée, j'ai réécrit le script et j'ai compris comment l'enlever en masse. C'est une sorte de fusil de chasse, donc je ne suis pas sûr que ce soit presque optimal.

#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 

Confirmé travaillant dans plusieurs environnements de développement.