Mailbox report

Hi,

I am looking for a script which tell the users what is thier mailbox size on daily basis.

Note : there is no quota set for any of the user in our company, we are using exchange 2010

Thanks in advance
LVL 1
alabkrishnanAsked:
Who is Participating?
 
WinsoupConnect With a Mentor Commented:
Did that work for you? Can you please accept an answer that worked if this was it?
Thanks.
0
 
WinsoupConnect With a Mentor Commented:
Are you trying to notify them all individually? I don't know of a very good way to do that without creating a ton of individual scripts.  
If you want to get all mailbox sizes and have it put into a CSV you can do that. I can get you a powershell script for that.
Then just create a task to have it emailed to everyone.
Everyone would be able to see each others mailbox sizes this way though. Not that it's some big secret or something but I'm not sure what your original plan was.
0
 
alabkrishnanAuthor Commented:
my management want to have the mailbox size to send it to the individual users.

We told them to do a quota settings since they are higher menagement they dont wnat to give them warining, they are only handful of people if you tell me how to script individual users and send email i can do that for those users.

Thanks for helping me, im a learner in powershell.

Regards,
Bala
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
WinsoupConnect With a Mentor Commented:
This script will work for an individual user. Just replace "user@domain.com with whatever you want. You can also change C:\Size.csv to whatever name and location you want to save it to.


function Load_Exchange_Tools {
      if (-not (Get-pssnapin | ? {$_.name -like 'Microsoft.Exchange.Management.PowerShell.e2010'})) {
            Add-PSSnapin Microsoft.Exchange.Management.PowerShell.e2010
      }
}
Load_Exchange_Tools
Get-Mailbox "user@domain.com" -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName,StorageLimitStatus,@{name="TotalItemSize (MB)";expression={[math]::Round((($_.TotalItemSize.Value.ToString()).Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}},@{name="TotalDeletedItemSize (MB)";expression={[math]::Round((($_.TotalDeletedItemSize.Value.ToString()).Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}},ItemCount,DeletedItemCount | Sort "TotalItemSize (MB)" -Descending | Export-CSV "C:\Size.csv" -NoTypeInformation


I would take that and save it as a .ps1, then create a task in task scheduler and set it to run every day at whatever time you want. Then, I'd create another task to send that file it creates as an email at whatever time you want.

Your task "action" should look like this:

Program\Script would be:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Action would be:
C:\Size.ps1 (or wherever you deicide to save this script.

Once you have that set up, run and make sure it puts a CSV file on the C drive with the info for the user you entered. Once you have that working then create the task to email it to the user.

Let me know if something doesn't make sense. It's a little much to explain on here.


Side note: you can create a quota and just take upper management out of that quota policy if they don't want to be part of it.
0
 
alabkrishnanAuthor Commented:
Thanks for helping me out, i will test and keep you posted the updates on monday.

Have a good week end.
0
 
alabkrishnanAuthor Commented:
I've requested that this question be closed as follows:

Accepted answer: 0 points for alabkrishnan's comment #a39896019

for the following reason:

He is awsome
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.