Skip to content

Room Calendar External Processing

defpearlpilot edited this page Aug 15, 2017 · 3 revisions

Problem

By default, all rooms created in O365 will process meeting requests automatically IF they come from a user in the same domain as the room (Designit user -> Designit room). However, if it comes from a user outside the domain (Wipro user -> Designit room), then it will require someone to manually approve/reject the meeting. There is a setting that can change this but the only way to execute it is via Powershell

Remote Desktop into Windows machine

  1. Install any tool of your choice that can supports Remote Desktop to Windows 2012 and newer machines. https://itunes.apple.com/us/app/microsoft-remote-desktop/id715768417?mt=12
  2. Connect to the Windows machine via Remote Desktop
    1. For example, to connect to the AD-Admin machine in a rig, connect to the VPN
    2. Then Remote Desktop to ad-admin.riglet and use your CORP domain username/password that you were assigned

Execute Powershell commands

  1. Start a Powershell session (Windows icon->Windows PowerShell)
  2. Set execution policy (only needs to be done once per machine)
    1. Set-ExecutionPolicy RemoteSigned
  3. Load the Powershell modules/commandlets. https://technet.microsoft.com/en-us/library/jj984289(v=exchg.160).aspx
    1. $UserCredential = Get-Credential and enter the username/password of an admin in the same domain as the rooms
    2. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
    3. Import-PSSession $Session
  4. Get a list of all room mailboxes
    1. Get-Mailbox -RecipientTypeDetails RoomMailBox - take note of the alias of the room you want to modify
  5. Get the room's calendar processing properties
    1. Get-CalendarProcessing <ROOM_ALIAS> | select * - Look for ProcessExternalMeetingMessages
  6. Set the room's external processing property
    1. Set-CalendarProcessing <ROOM_ALIAS> -ProcessExternalMeetingMessages $true
  7. Complete the session
    1. Remove-PSSession $Session
    2. Close Powershell window
    3. Log off of the Windows machine - Don't just close the Remote Desktop session window as that will Disconnect instead (the session will still be alive).

Attempt to enable Powershell on Mac

Very recently, Powershell is available cross platform. Given it's early days, YMMV but we attempted to get this to work via Mac first. However, the commandlets would hang randomly making for an inefficient experience. The only way to stop hanging was to kill powershell which left the session dangling. You are only allowed 3 concurrent sessions w/ Exchange so after 3, you need to wait for previous ones to timeout.

  1. Install Powershell
    1. brew cask install powershell
  2. Follow the above steps to load the commandlets
  3. At this point, you can execute the Get-Mailbox and Get-CalendarProcessing but beware that they seem to hang more often than not.