Author Posts

February 7, 2014 at 6:19 am

Hi
I am thinking what would be the best approach to do this:
I need to raise mailbox quota warning(warning,send,send/rec)
by for xample
10
20
30
of their existing mailbox size in exchange.
for example if user1 has 550mb mailbox size right now then:
set his quota warnings to:
warning>>560
send>>570
send/rec>>580

Thanks in advance

February 7, 2014 at 11:39 am

sorry for the amature style script but this is what I got so far:

# Increase-MailboxQuota.ps1

# Script for incrementing mailbox quotas

# Amount to increase Quotas in megabytes
if ((get-pssnapin |% {$_.name}) -notcontains "Microsoft.Exchange.Management.PowerShell.E2013"){

. 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'

Connect-ExchangeServer -auto

}

$QuotaWarning = 10
$QuotaSend = 30
$QuotaSendRecieve = 50

# Get the mailbox

$Mailboxes = Get-Mailbox -ErrorAction Silentlycontinue
foreach ($mailbox in $Mailboxes)
{

# Getting the current mailbox information,size and quota

$DisplayName = $Mailbox.DisplayName
$Database = $Mailbox.Database
$UsingDBQuotas = $Mailbox.UseDatabaseQuotaDefaults
$MailboxSize = (Get-MailboxStatistics -Identity $Mailbox.Name).TotalItemSize.value.ToMB()
$CurrentWarningQuota = $Mailbox.IssueWarningQuota.value.ToMB()
$CurrentSendQuota = $Mailbox.ProhibitSendQuota.value.ToMB()
$CurrentSendRecieveQuota = $Mailbox.Prohibitsendreceivequota.value.ToMB()

# Calculate the new quotas
$NewWarningQuota = $MailboxSize + $QuotaWarning
$NewSendQuota = $MailboxSize + $QuotaSend
$NewSendRecieveQuota = $MailboxSize + $QuotaSendRecieve

# Set the new values on the mailbox

$NewWarningQuotaset = [STRING]$NewWarningQuota + "MB"
$NewSendQuotaset = [STRING]$NewSendQuota + "MB"
$NewSendRecieveQuotaset = [STRING]$NewSendRecieveQuota + "MB"

Set-Mailbox -Identity $Mailbox -UseDatabaseQuotaDefaults $False -ProhibitSendQuota $NewSendQuotaset -IssueWarningQuota $NewWarningQuotaset -Prohibitsendreceivequota $NewSendRecieveQuotaset

# output some new and old info

}


seems to do what it was intended although when running it from ise(don't think it matters)
I get a lot of these errors:

PS C:\Windows\system32> C:\Users\administrator.TEST\Desktop\quota.ps1

Welcome to the Exchange Management Shell!

Full list of cmdlets: Get-Command
Only Exchange cmdlets: Get-ExCommand
Cmdlets that match a specific string: Help **
Get general help: Help
Get help for a cmdlet: Help or -?
Show quick reference guide: QuickRef
Exchange team blog: Get-ExBlog
Show full output for a command: | Format-List

Tip of the day #19:

If you want to test all IP Block List providers, you just have to pipe the Get-IpBlockListProvider cmdlet to the Test-IpBlockListProvider cmdlet:

Get-IpBlockListProvider | Test-IpBlockListProvider -IpAddress 192.168.0.1

VERBOSE: Connecting to EX1.Test.corp.
VERBOSE: Connected to EX1.Test.corp.
You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:30 char:1
+ $CurrentWarningQuota = $Mailbox.IssueWarningQuota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:31 char:1
+ $CurrentSendQuota = $Mailbox.ProhibitSendQuota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:32 char:1
+ $CurrentSendRecieveQuota = $Mailbox.Prohibitsendreceivequota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

WARNING: The user hasn't logged on to mailbox 'DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}' ('f8bff58a-ef06-498d-8462-49df5e38393c'), so the
re is no data to return. After the user logs on, this warning will no longer appear.
You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:29 char:1
+ $MailboxSize = (Get-MailboxStatistics -Identity $Mailbox.Name).TotalItemSize.val ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:30 char:1
+ $CurrentWarningQuota = $Mailbox.IssueWarningQuota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:30 char:1
+ $CurrentWarningQuota = $Mailbox.IssueWarningQuota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:31 char:1
+ $CurrentSendQuota = $Mailbox.ProhibitSendQuota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:32 char:1
+ $CurrentSendRecieveQuota = $Mailbox.Prohibitsendreceivequota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:30 char:1
+ $CurrentWarningQuota = $Mailbox.IssueWarningQuota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:31 char:1
+ $CurrentSendQuota = $Mailbox.ProhibitSendQuota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At C:\Users\administrator.TEST\Desktop\quota.ps1:32 char:1
+ $CurrentSendRecieveQuota = $Mailbox.Prohibitsendreceivequota.value.ToMB()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

I would also like to add some output to txt or csv(didn't figure that one yet)
to output what the old value was and what the new value is per mailbox.

any ideas?