Creating an Equipment Mailbox with Powershell on Office 365
Updated 10/26/2023 - A lot of this content is still valid, but it is now much easier to create chat first service desk that is integrated into Microsoft Teams (here is our link in MS Teams AppSource) - including features to create and deploy a private (based on your FAQS) instance of ChatGPT. Take a look at Chime V5 for our integration with AI, FAQ system, and great looking web client - with deployment options for buttons.
Recently, we needed some
in our Office 365 environment for some development tasks using the Exchange Web Services. It seems like the guides that we found online were typically accurate but were frequently incomplete. They included some of the steps, but not enough to really get going fully. Below are the steps developed in order to create our equipment mailboxes. The steps include several Powershell commands and should help provision the mailboxes from start to finish.
To start, you'll need to install and configure the
Microsoft Online Services Module for Windows PowerShell
. You can follow the instructions
to do so, it's easy enough.
Next we'll want to open the Microsoft Online Services Module for Windows Powershell program. It will launch like any other Powershell program. Once loaded, we need to give Powershell the credentials we'll be logging in to Office 365 as. These need to be for a user with Administrator privileges in your Office 365 domain. To do so, run the following command:
$credentials = Get-Credential
This will spawn a window asking for credentials, enter your Office 365 administrative credentials.
Once Powershell has your credentials, we need to log into the Office 365 servers using the credentials we just set and start our remote session. Use the command below to do so:
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $credentials -Authentication Basic -AllowRedirection
This might take a few seconds to complete.
Now we need to import the Powershell commands, from the Microsoft servers to our local session.
Use the command below to do so.
$ImportResults = Import-PSSession $session
Now that we are properly staged up with our Session and we've imported the commands from the Microsoft Online Services, we can create the mailbox using the commands below:
New-Mailbox -Name EquipmentTest01 -DisplayName "Equipment Test-01" -Equipment
The command above will create a mailbox for the EquipmentTest01 user, with a display name of Equipment Test-01. The only thing that makes this command any different than normal create mailbox commands is just the -Equipment argument. You can add other arguments to this command as well, such as -OrganizationalUnit, or -Database to specify which mailbox store to use.
For our purposes, we need to give another user full access to the mailbox. So we used the following command to delegate the access to the user.
Add-MailboxPermission "Development User" -user "Equipment Test-01" -Accessright FullAccess
Once that was completed, we were done. There are more things around creation and delegation that can be performed, so I'll post all the documentation below.