Carl Billington
asked on
Exchange 2010, Powershell: Exclude members of a distribution group from working Quota script
I would like to amend the script below to exclude from the quota script, members of a distribution group: "Mailbox Quota Policy Exclusion" not individual users.
Thank you
$AllMailboxes = Get-Mailbox -resultsize unlimited | Get-MailboxStatistics | where {($_.Displayname -like "*carl*") -or ($_.Displayname -like "*anna*") -or ($_.Displayname -like "*robert*")}
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Value.ToMB()
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
Thank you
[String]$ExclusionGroupDN = (Get-DistributionGroup "Mailbox Quota Policy Exclusion").DistinguishedN ame
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN} | Get-MailboxStatistics | where {($_.Displayname -like "*carl*") -or ($_.Displayname -like "*anna*") -or ($_.Displayname -like "*robert*")}
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val ue.ToMB()
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN} | Get-MailboxStatistics | where {($_.Displayname -like "*carl*") -or ($_.Displayname -like "*anna*") -or ($_.Displayname -like "*robert*")}
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
ASKER
Hi Rajitha14
The script is not working.
See error below:
The script is not working.
[String]$ExclusionGroupDN = (Get-DistributionGroup "Mailbox Quota Policy Exclusion").DistinguishedName
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN}
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Value.ToMB()
if(($SizeMB -lt 256) -and ($SizeMB -gt 150)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
See error below:
ASKER
Hi Subsun
The script is not working:
See error below:
The script is not working:
$AllMailboxes = Get-Mailbox -Filter {MemberofGroup -ne "CN=Mailbox Quota Policy Exclusion,OU=Group,DC=tse,DC=local"} -resultsize unlimited |
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Value.ToMB()
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
See error below:
Oops...My mistake..Please try this.
[String]$ExclusionGroupDN = (Get-DistributionGroup "Mailbox Quota Policy Exclusion").DistinguishedN ame
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN} | Get-MailboxStatistics
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val ue.ToMB()
if(($SizeMB -lt 256) -and ($SizeMB -gt 150)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
[String]$ExclusionGroupDN = (Get-DistributionGroup "Mailbox Quota Policy Exclusion").DistinguishedN
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN} | Get-MailboxStatistics
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val
if(($SizeMB -lt 256) -and ($SizeMB -gt 150)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
In my script you had removed the following line but not the pipe (|).. :-)
Get-MailboxStatistics | where {($_.Displayname -like "*carl*") -or ($_.Displayname -like "*anna*") -or ($_.Displayname -like "*robert*")}
Try This..$AllMailboxes = Get-Mailbox -Filter {MemberofGroup -ne "CN=Mailbox Quota Policy Exclusion,OU=Group,DC=tse,DC=local"} -resultsize unlimited
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Value.ToMB()
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
Hey Omnific, The script that i have given for this requirement is below. In your comment, i see that you used different script. Please make sure you modify the script with the DL names in your environment. You cannot copy and paste as it is Or let me know the DL names.
[String]$ExclusionGroupDN = (Get-DistributionGroup "MailboxQuotaPolicyExclusi on").Disti nguishedNa me
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN} | Get-MailboxStatistics | where {($_.Displayname -like "*carl*") -or ($_.Displayname -like "*anna*") -or ($_.Displayname -like "*robert*")}
$AllMailboxes >> Mailboxlist.txt
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val ue.ToMB()
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
[String]$ExclusionGroupDN = (Get-DistributionGroup "MailboxQuotaPolicyExclusi
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN} | Get-MailboxStatistics | where {($_.Displayname -like "*carl*") -or ($_.Displayname -like "*anna*") -or ($_.Displayname -like "*robert*")}
$AllMailboxes >> Mailboxlist.txt
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi Rajitha14
I want to remove this action from the script: Get-MailboxStatistics | where {($_.Displayname -like "*carl*") -or ($_.Displayname -like "*anna*") -or ($_.Displayname -like "*robert*")}
The DL name is "Mailbox Quota Policy Exclusion" as writen above. I want the script to exclude users that are currently in that DL.
I want to remove this action from the script: Get-MailboxStatistics | where {($_.Displayname -like "*carl*") -or ($_.Displayname -like "*anna*") -or ($_.Displayname -like "*robert*")}
The DL name is "Mailbox Quota Policy Exclusion" as writen above. I want the script to exclude users that are currently in that DL.
Ok, you can try this. But, i think you were saying that the filter was not working in other post. However, you can try this. What are you planning to do with the members of that Exclusion DL? Do you want to remove any quota settings on those mailboxes?
[String]$ExclusionGroupDN = (Get-DistributionGroup "MailboxQuotaPolicyExclusi on").Disti nguishedNa me
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN} | Get-MailboxStatistics
$AllMailboxes >> Mailboxlist.txt
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val ue.ToMB()
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
[String]$ExclusionGroupDN = (Get-DistributionGroup "MailboxQuotaPolicyExclusi
$AllMailboxes = Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN} | Get-MailboxStatistics
$AllMailboxes >> Mailboxlist.txt
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val
if(($SizeMB -lt 512) -and ($SizeMB -gt 256)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
i can suggest an alternate way to do this if you give the requirement exactly.
ASKER
Subsun, your code work in my test lab!!! Very happy. Deploying it tomorrow :)
ASKER
Hi Rajitha14 I really appreciate your efforts. You have done a great job too. But this is what I wanted:
$AllMailboxes = Get-Mailbox -Filter {MemberofGroup -ne "CN=Mailbox Quota Policy Exclusion,OU=SBSUsers,OU=U sers,OU=My Business,D C=tse,DC=l ocal"} -resultsize unlimited | Get-MailboxStatistics
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val ue.ToMB()
if(($SizeMB -lt 512) -and ($SizeMB -gt 100)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
This works in my test lab so far.
$AllMailboxes = Get-Mailbox -Filter {MemberofGroup -ne "CN=Mailbox Quota Policy Exclusion,OU=SBSUsers,OU=U
foreach($Mailbox in $AllMailboxes){
$SizeMB = $Mailbox.TotalItemSize.Val
if(($SizeMB -lt 512) -and ($SizeMB -gt 100)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 256MB -ProhibitSendQuota 512MB -ProhibitSendReceiveQuota 1024MB}
if(($SizeMB -lt 1048) -and ($SizeMB -gt 512)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 512MB -ProhibitSendQuota 1024MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 2048) -and ($SizeMB -gt 1024)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 950MB -ProhibitSendQuota 2048MB -ProhibitSendReceiveQuota 2048MB}
if(($SizeMB -lt 3072) -and ($SizeMB -gt 2048)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 1024MB -ProhibitSendQuota 3072MB -ProhibitSendReceiveQuota 3072MB}
if(($SizeMB -lt 4096) -and ($SizeMB -gt 3072)){Set-Mailbox $Mailbox.DisplayName -UseDatabaseQuotaDefaults $false -IssueWarningQuota 2048MB -ProhibitSendQuota 4096MB -ProhibitSendReceiveQuota 4096MB}
}
This works in my test lab so far.
No problem, But my lines of code also does the same.
I think the variable will not work with -filter but should work with Where-Object Cmdlet.. Are you getting the desired result for following commands?
$ExclusionGroupDN = (Get-DistributionGroup "Mailbox Quota Policy Exclusion").DistinguishedName
Get-Mailbox -resultsize unlimited -Filter {MemberOfGroup -ne $ExclusionGroupDN}
Sample code..
Open in new window