The other day I wanted to have a look at the mailbox usage for one of my Office 365 clients. I wanted to see all 35 users and find out if anyone was close to their mailbox quotas. There is no way to check this for all users at once using the Office 365 or Exchange Online GUI so you need to turn to PowerShell. I had to go to 5 or 6 different sites to find all of the little details and troubleshoot some errors so I thought I'd compile all of that info into a blog post for you.

1 Steps total

Step 1: Check mailbox size and usage with Office 365 - Powershell

First of all, you need to use the regular version of PowerShell. NOT the "Online Services Module" for PowerShell version that you would typically use for other Office 365 tasks, I guess because we are talking directly to the Exchange environment here and not the Office 365 portal itself.
Make sure you run PowerShell as an administrator. (Right-click the icon and select "Run as Administrator")
The first time I ever tried to run these type of scripts, I got an error about running remote signed scripts or something like that. So you need to run this command the very first time you try any operations like this:
Set-ExecutionPolicy RemoteSigned
Next are the 3 commands that you need to run to connect to your hosted Exchange server and start a new session:
1. $LiveCred = Get-Credential (then enter your Office 365 email address and password in the box that pops up)
2. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection
3. Import-PSSession $Session
Next is the basic command to get a list of all users and their current mailbox size:
4. get-mailbox | get-mailboxstatistics | ft displayname, totalitemsize
When you are finished, it's a best practice to go ahead and close your session before you exit PowerShell, so you need to run this command:
5. Remove-PSSession $Session