Tuesday, February 21, 2017

How to Set up Rooms Properly in Office 365


You'd think that setting rooms up in Office 365 would be a simple matter of going to the Office 365 Admin console, expanding Resources, clicking on Rooms and Equipment and then using the Add Button


This works but it doesn't do everything. If you want your rooms to appear in the Room List (and to show available times), you'll have to use PowerShell to put them there.


Finding Answers

So... I spent a while trying to find the answers without a whole lot of luck. I think that coming from the Notes/Domino world and not being familiar with the outlook terminology hindered me a bit in this regard. 

In any case, big thanks to IT for Dummies btw whose page called "Create Room List Office 365" made very little sense to me but helped me to explain to Microsoft Support what it was that I was looking for. 

BTW: Microsoft support can be reached via the Support and then Service Requests options in the Admin Center. I've found their support to be excellent. 

How to Set up Your Room
Having done the initial room creation steps (see the top of this post) you need to do the following to get it fully registered;

  1. Start Microsoft PowerShell (with local admin access)
    Note, this is normal PowerShell, not Azure PowerShell
  2. At the PowerShell prompt type:

    Set-ExecutionPolicy RemoteSigned

    This essentially grants you higher privileges for the current session.
    (you'll probably be prompted for a Yes answer).

    The returned wording will be something like this;

    Execution Policy Change
    The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose you to the security risks described in the about_Execution_Policies help topic at http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?

    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"):

  3. Next type;

    $UserCredential = Get-Credential

    This logs you in - it will prompt for your Office 365 admin user name & password.

    The returned wording should be something like this;

    cmdlet Get-Credential at command pipeline position 1
    Supply values for the following parameters:
    Credential

  4. The next command sets up an office 365 session connecting to exchange.

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

    The next command apparently imports the commands for exchange into the current session. (ie: makes them available for use).

    The returned wording should be something like this;

    WARNING: The names of some imported commands from the module 'tmp_aipbhxxl.kcz' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.

    ModuleType Version    Name                                ExportedCommands
    ---------- -------    ----                                ----------------
    Script     1.0        tmp_aipbhxxl.kcz                    {Add-AvailabilityAddressSpace, Add-DistributionGroupMember...


    I have no idea what this means or why it's relevant to me... best to just ignore it.
  5. Our next PowerShell command actually manipulates the rooms, so this is the first command that you'll need to have custom bits on.

    There are two parts to this;

    Part A: The Room List - This can be anything at all, it's just a way of describing the rooms collectively. If you've only got one set of rooms, you might as well call it "Local Rooms" but if you have separate rooms, for example, "Executive Rooms" and "Core Meeting Rooms" or "Building 1 Rooms" versus "Building 2 Rooms" then you'll want to describe this bit more carefully.

    Part B: The Room Names - In our case, we had four rooms, the Board Room, Large Meeting Room, Small Meeting Room and Projects Meeting Room.  You'll need to gather all of the rooms for a given list together and execute the command once -- because you can't add rooms to the list later (more on that afterwards).

    You'll need to use the short names for the rooms (the first part of their email addresses) as the room names in this command aren't supposed to have spaces in them.

    Here's the command you should submit;

    New-DistributionGroup -RoomList -Name 'Local Rooms' -Members BoardRoom, LargeMeetingRoom, SmallMeetingRoom, ProjectsMeetingRoom

    The response is downright weird... and a bit ... advertising..

    New! Office 365 Groups are the next generation of distribution lists.
    Groups give teams shared tools for collaborating using email, files, a calendar, and more.
    You can start right away using the New-UnifiedGroup cmdlet.

    Name        DisplayName GroupType PrimarySmtpAddress
    ----        ----------- --------- ------------------
    Local Rooms Local Rooms Universal LocalRooms@xxxxxxxxx.onmicrosoft.com

  6. To verify that the rooms were adjusted type the following;

    get-recipient -identity localrooms

    It should return and indication that there's now a distibution group called Local Rooms.

    Name        RecipientType
    ----        -------------
    Local Rooms MailUniversalDistributionGroup

  7. Of course, you could just close Outlook and reopen it and create a Meeting to check. 

One last note... the Microsoft team told me that if I needed to add a room to the group, I would be best off deleting the Local Rooms group and running the creation/linking command again. 

Thanks again to the Microsoft support team. I don't know how I would have figured this out without their help. 

2 comments:

Mick Moignard said...

Really? In 2017?

Gavin Bollard said...

It was a massive shock to me after not having to do anything spectacular to get calendars working in Domino all these years.