Hello Everyone,
I’m crating a little script to always true up 3 users Blocked Senders Lists so that they are always the same. The intent of the script is to look at all three users, see who has the largest Blocked Senders List, and apply that list to the other two users. After it has been applied, check again to see if all the numbers match.
The issue I run into is when I try to use the variable that is “Biggest_Entry_Count”. It has variable of the largest variable inside, but when I use that to apply the entries to the other users, it fails.
Here is the code that I have written so far:
$person1 = 'person1@domain.com'
$person2 = 'person2@domain.com'
$person3 = 'person3@domain.com'
$person1_Entries = (Get-MailboxJunkEmailConfiguration -Identity $person1 | Select-Object -expandproperty BlockedSendersAndDomains)
$person2_Entries = (Get-MailboxJunkEmailConfiguration -Identity $person2 | Select-Object -expandproperty BlockedSendersAndDomains)
$person3_Entries = (Get-MailboxJunkEmailConfiguration -Identity $person3 | Select-Object -expandproperty BlockedSendersAndDomains)
$person1_Entries_Count = $person1_Entries.count
$person2_Entries_Count = $person2_Entries.count
$person3_Entries_Count = $person3_Entries.count
Write-Host "$person1 -- $person1_Entries_Count"
Write-Host "$person2 -- $person2_Entries_Count"
Write-Host "$person3 -- $person3_Entries_Count"
$Biggest_Entry_Count = '${0}' -f (Get-Variable -Name person1_Entries_count, person2_Entries_count, person3_Entries_count | Sort-Object -Property Value | Select-Object -Last 1 -ExpandProperty Name)
$Biggest_Entry = '${0}' -f ((Get-Variable -Name person1_Entries_count, person2_Entries_count, person3_Entries_count | Sort-Object -Property Value | Select-Object -Last 1 -ExpandProperty Name)).Trim("_Count")
Write-Host "Biggest Entry Variable: " $Biggest_Entry
Write-Host "Biggest Entry Count Variable: " $Biggest_Entry_Count
if ($Biggest_Entry_Count -gt $person1_Entries_Count) {
Write-Host "Add Biggest Entry to person1"
Set-MailboxJunkEmailConfiguration $person1 -BlockedSendersAndDomains $Biggest_Entry
}
if ($Biggest_Entry_Count -gt $person2_Entries_Countt) {
Write-Host "Add Biggest Entry to person2"
Set-MailboxJunkEmailConfiguration $person2 -BlockedSendersAndDomains $Biggest_Entry
}
if ($Biggest_Entry_Count -gt $person3_Entries_Count) {
Write-Host "Add Biggest Entry to person3"
Set-MailboxJunkEmailConfiguration $person3 -BlockedSendersAndDomains $Biggest_Entry
}
$person1_Entries = (Get-MailboxJunkEmailConfiguration -Identity $person1 | Select-Object -expandproperty BlockedSendersAndDomains)
$person2_Entries = (Get-MailboxJunkEmailConfiguration -Identity $person2 | Select-Object -expandproperty BlockedSendersAndDomains)
$person3_Entries = (Get-MailboxJunkEmailConfiguration -Identity $person3 | Select-Object -expandproperty BlockedSendersAndDomains)
$person1_Entries_Count = $person1_Entries.count
$person2_Entries_Count = $person2_Entries.count
$person3_Entries_Count = $person3_Entries.count
Write-Host "$person1 -- $person1_Entries_Count"
Write-Host "$person2 -- $person2_Entries_Count"
Write-Host "$person3 -- $person3_Entries_Count"
Here is the output I currently get:
person1@domain.com -- 6523
person2@domain.com -- 6493
person3@domain.com -- 6552
Biggest Entry Variable: $person3_Entries
Biggest Entry Count Variable: $person3_Entries_Count
Add Biggest Entry to person2
Property validation failed: BlockedSendersAndDomains
+ CategoryInfo : NotSpecified: (:) [Set-MailboxJunkEmailConfiguration], PropertyValidationException
+ FullyQualifiedErrorId : [Server=MN2PR04MB6317,RequestId=f9526398-bcd1-4c5a-a114-2ac7d2536b91,TimeStamp=10/27/2020 4:28:18 PM] [FailureCategory=Cmdle
t-PropertyValidationException] 9FB58158,Microsoft.Exchange.Management.StoreTasks.SetMailboxJunkEmailConfiguration
+ PSComputerName : outlook.office365.com
person1@domain.com -- 6523
person2@domain.com -- 6493
person3@domain.com -- 6552
Thanks for any help you can provide!
- Rob