Skip to content
MVP Logo
Graham Walsh
  • Home
  • Resume
  • About Me
  • MTDAMA
  • Store
MVP Logo
Graham Walsh
  • Home
  • Resume
  • About Me
  • MTDAMA
  • Store

Creating Microsoft Exchange Resource Accounts with PowerShell on MacOS

Leave a Comment / Microsoft / By GrahamWalsh / January 4, 2024

What's in this post...

  • Video Overview of setting accounts up
  • Step One – Installing PowerShell and modules
  • Step Two – Connecting to online services
  • Step Three – Set room account variables
  • Step Four – Set password never expires
  • Step Five – Get a list of licenses
  • Step Six – Set the variable with the license
  • Step Seven – Set the license to the user
  • Step Eight – Check the user has a license assigned now
  • Step Nine – Set mailbox options
  • Step Ten – Adding Microsoft Teams Phone and a Calling Plan to the Acccount
  • Step Eleven – Create a Room List
  • Step Twelve – Allow Conflicts – useful for trade shows/labs

Loading

Last Updated on April 4, 2025 by GrahamWalsh

Previously I had done an overview on setting up accounts, but times change, and that article is out of date now as Skype for Business isn’t used much more. And it was on Windows, let’s change it up and show a guide on MacOS.

There is also a wizard that Microsoft has enabled via the Microsoft 365 Admin Center. You can use this link to take you to that if you prefer to use a GUI, however you still need PowerShell to complete the setup.

Microsoft 365 Account Setup Wiziard

Video Overview of setting accounts up

Step One – Installing PowerShell and modules

Open Terminal and type

brew install --cask powershell
Install-Module -Name ExchangeOnlineManagement
Install-Module -Name Microsoft.Graph

Step Two – Connecting to online services

Connect-ExchangeOnline -UserPrincipalName account@yourdomain.name
Connect-Graph -Scopes User.ReadWrite.All, Organization.Read.All

Step Three – Set room account variables

$newroom = "prague@yourdomain.name"
$Display = "Prague Room"
New-Mailbox -MicrosoftOnlineServicesID $newroom -Name $Display -RoomMailboxPassword (ConvertTo-SecureString -String "YourS3curePa$$word!" -AsPlainText -Force) -EnableRoomMailboxAccount $true -Room

Step Four – Set password never expires

Update-MgUser -UserId $newroom -PasswordPolicies DisablePasswordExpiration -UsageLocation GB

Step Five – Get a list of licenses

Here is a reference to the various licenses that could be available on your tenant.

Get-MgSubscribedSKU -All | Select-Object SkuPartNumber, SkuId, @{Name = "ActiveUnits"; Expression = { ($_.PrepaidUnits).Enabled } }, ConsumedUnits |
ForEach-Object {
[PSCustomObject]@{
Designation = $_.SkuPartNumber
LicenseID = $_.SkuId
NumberTotal = $_.ActiveUnits
NumberUsed = $_.ConsumedUnits
}
} | Sort-Object License | Format-Table
Output of getting the licenses of your tenant.

Now copy the license type such as Microsoft_Teams_Rooms_Pro

Step Six – Set the variable with the license

$EmsSku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'Microsoft_Teams_Rooms_Basic'

Step Seven – Set the license to the user

Set-MgUserLicense -UserId $newroom -AddLicenses @{SkuId = $EmsSku.SkuId} -RemoveLicenses @()

Step Eight – Check the user has a license assigned now

Get-MgUserLicenseDetail -UserId $newroom | Format-List

Step Nine – Set mailbox options

First up, we can set the mail tip for the room if required.

Set-Mailbox -Identity $newroom -MailTip "This room is video enabled to support Microsoft Teams Meetings with options for Zoom and Webex Direct Guest Join or BYOD Mode"

Next we set the mailbox processing rules to auto accept meeting invites, allow third party meetings etc.

Set-CalendarProcessing -Identity $newroom -AutomateProcessing AutoAccept -AddOrganizerToSubject $false -RemovePrivateProperty $false -DeleteComments $false -DeleteSubject $false -ProcessExternalMeetingMessages $true -AddAdditionalResponse $true -AdditionalResponse "Your meeting is now scheduled and if it is a Microsoft Teams, Zoom or Webex meeting, just press the Join icon on the controller."

This next option is if you want to set options when searching in Room Lists in Microsoft Teams and when using Outlook in addition to Teams Panels outside the rooms.

Set-Place -Identity $newroom -AudioDeviceName Neat -VideoDeviceName "Neat Microsoft Teams Room" -Capacity 6 -DisplayDeviceName "75inch LCD" -Floor 1 -FloorLabel "Pavilion Club" -Tags "Microsoft Teams Enabled","Zoom & Webex Interop Enabled","BYOD Enabled" -PostalCode "EC4R 0AA" -Street "27 Bush Lane" -Phone 01234567890 -CountryOrRegion GB -City London -Building "Cannon Green" -IsWheelChairAccessible $true -GeoCoordinates "51.51074;-0.089614" -MTREnabled $true

If you want to set the time zone for the room, you can do this via PowerShell here too, otherwise you’ll have to log into OWA and set it there. To find a list of time zones, run this command and it will show you time zones in Europe for example.

Get-TimeZone -Name "*europe*"

Once you have found the time zone you want, just run this command now to set it say for Oslo.

Set-MailboxRegionalConfiguration -Identity $newroom -TimeZone "Central Europe Standard Time"

Step Ten – Adding Microsoft Teams Phone and a Calling Plan to the Acccount

$EmsSku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'MCOEV'
Set-MgUserLicense -UserId $newroom -AddLicenses @{SkuId = $EmsSku.SkuId} -RemoveLicenses @()
$EmsSku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'MCOPSTN2'
Set-MgUserLicense -UserId $newroom -AddLicenses @{SkuId = $EmsSku.SkuId} -RemoveLicenses @()

Step Eleven – Create a Room List

New-DistributionGroup -Name "Neat Demo Rooms" -RoomList
Add-DistributionGroupMember -Identity "Neat Demo Rooms" -Member $newroom

Step Twelve – Allow Conflicts – useful for trade shows/labs

Set-CalendarProcessing -Identity $newroom -AllowConflicts $true

And that is it, you now have a resource account setup to be used with Microsoft Teams Panels, Microosft Teams Rooms, Zoom Rooms and any scheduling use.

Like this:

Like Loading...
← Previous Post
Next Post →

Support This Site

If you like this blog and it's helped you, I'd love an extra coffee. https://ko-fi.com/thegrahamwalsh

Merch Store

  • Design 06 - Unisex classic t-shirt Design 06 - Unisex classic t-shirt
    Rated 0 out of 5
    £10.50 – £14.50Price range: £10.50 through £14.50
  • Design 06 - Unisex classic tee Design 06 - Unisex classic tee
    Rated 0 out of 5
    £10.50 – £14.50Price range: £10.50 through £14.50
  • Design 12 - Mug Design 12 - Mug
    Rated 0 out of 5
    £9.00

Recent Posts

  • Building a Neat Board 50 Adaptive Stand in 15 minutes September 8, 2025
  • Microsoft Teams Rooms – Setting the default framing for Microsoft Teams August 29, 2025
  • Collecting Microsoft Teams Logs August 22, 2025

Blog Roll

  • Jason Moulden’s AV/UC Blog
  • Connor Bright’s Blog
  • Michael Tressler’s Blog
  • Michael’s MTR Quick Tip Videos
  • Jimmy Vaughan’s Blog
  • Craig Chiffer’s Blog
  • Ramon Silva’s Blog
  • Jeff Schertz’s Blog

Categories

  • Apple (12)
  • General (114)
  • Microsoft (211)
  • Mobility (15)
  • MTDAMA (71)
  • Unified Comms (162)

Archives

Products

  • Design 06 - Unisex classic t-shirt Design 06 - Unisex classic t-shirt
    Rated 0 out of 5
    £10.50 – £14.50Price range: £10.50 through £14.50
  • Design 06 - Unisex classic tee Design 06 - Unisex classic tee
    Rated 0 out of 5
    £10.50 – £14.50Price range: £10.50 through £14.50
  • Design 12 - Mug Design 12 - Mug
    Rated 0 out of 5
    £9.00
  • Design 12 - Coasters Design 12 - Coasters
    Rated 0 out of 5
    £6.00
  • Design 12 - Cap Design 12 - Cap
    Rated 0 out of 5
    £17.50

Basket

Select Currency

Category

  • Accessories11 product
  • Home & Living22 products
    • Drinkware11 product
  • Hoodies11 product
  • Menswear55 products
  • T-Shirts55 products
    • Polo Shirts11 product
    • Short Sleeve44 products
  • Unisex33 products
  • Womenswear33 products

Design Style & Shipping Location

ships from australia ships from brazil ships from canada ships from japan ships from latvia ships from spain ships from uk ships from usa

Copyright © 2025 Graham Walsh | Powered by Astra WordPress Theme

 

Loading Comments...
 

    %d