What a mess: Exchange 2013 with Direct Booking and the AutoAccept Agent

In short, Direct Booking and all the associated mailbox delegation controls that were in Exchange 2003 became confusing in 2007 and became a mess in Exchange 2013.

This is a short, reference post.

At this point in time (Mid-2016) most people already experienced this pain but, through these links, I finally tracked down multiple issues with Room Resources not sending Accept/Reject emails to Delegates.

  1. Start with a simple explanation between the old and new ways:  Exchange 2003 Auto Accept Agent vs. direct booking & Booking Delegation Vs. Classic Delegation.
  2. Then use this Powershell script to discover which mailboxes and/or resources have Direct Booking enabled: Use Exchange Web Services and PowerShell to Discover and Remove Direct Booking Settings. Then use the “write” method to actually make the changes to the desired mailboxes. Read the include README file closely for prerequisites.
  3. Simple PowerShell to confirm and modify resources one-by-one: Two ways to grant access to a Resource in #MSFTExchange
  4. Lastly, and because we have a manageable number of Room Resources, go one-by-one and save them using the EAC. Decent double check because in at least one Microsoft Exchange Team blog post they mentioned that EAC does cleanup when it is saved post-upgrade. Specifically, a few rooms under “Booking Delegates” had a setting “Use customized setting to accept or decline booking requests”. Change the Room Resource to either “Accept or decline…” or “Select delegates…”.
    Before: custom booking delegates
    After:booking delegates

 Additional Reading:

  1. Setting Calendar Options For Resource Mailboxes In Exchange 2010…
  2. How to Create and configure a meeting room mailbox with Exchange Server 2007
  3. A Look at Exchange Server 2013 Resource Mailboxes
  4. Working with Resource Mailboxes in Exchange Server 2016
  5. Tool before the PowerShell script above: SetAA – Tweak Auto Accept Settings Across Mailboxes and an article explaining how to use it: Disable Direct Booking For All Room Mailboxes.
  6. I found the last step, saving in EAC, does mailbox cleanup. If not you can manually remove the mailbox from a room resource: I can’t disable a resource mailbox? Sez Who?
  7. Before screenshot above which was not well documented: Resources Booking Delegates Fix (AutomateProcessing: AutoUpdate)
  8. Exchange 2007: Resource delegate never receives forwarded meeting requests for approval 
  9. Useful method for appending information to meeting requests: Using Transport Rules to append text to Meeting Requests when Room Mailbox is selected as Resource

Bypassing “This program cannot run under VMWare or Virtual PC”

We had a specific application that did not want to run on as a virtual machine ( VMWare guest).

Sorry, this application cannot run under a Virtual Machine

“This program cannot run under VMWare or Virtual PC”
“Sorry, this application cannot run under a Virtual Machine”

Tell VMWare to prevent the guest from knowing its a virtual machine (VM).
Kudos to this post on superuser.com.

In this particular situation, all access to the guest was done over Remote Desktop Protocol (RDP); in other words, graphics performance was not critical.

NOTE: The modified VM will have poorer performance, especially with graphics, and VMware Tools will not work. This is an experimental configuration and not advised for long term use.

Shut down your VM. Add the following lines to the .VMX file of your VM (refer to this KB article from VMWare showing how to add these lines to different enciroments; e.g. Workstation, vSphere Client, etc.)

isolation.tools.getPtrLocation.disable = “TRUE”
isolation.tools.setPtrLocation.disable = “TRUE”
isolation.tools.setVersion.disable = “TRUE”
isolation.tools.getVersion.disable = “TRUE”
monitor_control.disable_directexec = “TRUE”
monitor_control.disable_chksimd = “TRUE”
monitor_control.disable_ntreloc = “TRUE”
monitor_control.disable_selfmod = “TRUE”
monitor_control.disable_reloc = “TRUE”
monitor_control.disable_btinout = “TRUE”
monitor_control.disable_btmemspace = “TRUE”
monitor_control.disable_btpriv = “TRUE”
monitor_control.disable_btseg = “TRUE”
tools.upgrade.policy = “manual”

Power-on your VM. Remove VMWare tools.
The problematic application should launch and run without issue. Enjoy.