Converting a User Mailbox to Resource Room Mailbox using PowerShell.

In past versions of Exchange Server, specifically Exchange 2003, managing Resource Room mailboxes was not exactly a straight forward process. In my organization at the time, to manage room Calendars and bookings for Conference rooms (they were not referred to as Resource Rooms at the time), we had to create mailboxes to represent the conference rooms.

It was not possible within Exchange 2003 Server to automatically process conference room bookings and scheduling on the server side . One had to create a client side outlook profile representing the room mailbox and keep that outlook profile constantly running on some box to ensure room bookings were auto processed.

Exchange 2010 SP1 changed all that with the ability to process all calendar processes Server side. After I completed the migration from Exchange 2003 to Exchange 2010 SP1, I started the task of converting the conference room user mailboxes to type Room mailbox. In this example, I will be working with an already existing user resource mailbox: BTConf.

I will be running these cmdlets on a Windows 8.1 Enterprise OS without the Exchange Management Shell installed.I’ll start by opening a PowerShell console, create a new Exchange session and import the session:


Verify the existence of User Resource Mailbox and it’s current Resource state:

PS C:\> Get-Mailbox -Identity BTConf

Name Alias ServerName ProhibitSendQuota
---- ----- ---------- -----------------
BTConf BTConf exch00 unlimited

PS C:\> Get-Mailbox -Identity BTConf | fl *Resource*, *RecipientTypeDetail*

IsResource : False
ResourceCapacity :
ResourceCustom : {}
ResourceType :
RecipientTypeDetails : UserMailbox

Verify Current Mailbox Calendar Permissions:

PS C:\> Get-MailboxFolderPermission -Identity BTConf:\calendar

RunspaceId : 735ed471-91a7-48c1-9e0b-d3a904582187
FolderName : Calendar
User : Default
AccessRights : {Author}
Identity : Default
IsValid : True

RunspaceId : 735ed471-91a7-48c1-9e0b-d3a904582187
FolderName : Calendar
User : Jane Doe
AccessRights : {Owner}
Identity : Jane Doe
IsValid : True

RunspaceId : 735ed471-91a7-48c1-9e0b-d3a904582187
FolderName : Calendar
User : Stacy Rice
AccessRights : {Owner}
Identity : Stacy Rice
IsValid : True

RunspaceId : 735ed471-91a7-48c1-9e0b-d3a904582187
FolderName : Calendar
User : Tim Cook
AccessRights : {PublishingEditor}
Identity : Tim Cook
IsValid : True

Convert the Regular resource Mailbox to Type Room:

Set-Mailbox -Identity BTConf -Type Room

Converting the mailbox to type Room introduces specific properties and sets values that are different from those on a regular user mailbox:

PS C:\> Get-Mailbox -Identity BTConf | fl *resource*, *recipienttypedetail*

IsResource : True
ResourceCapacity :
ResourceCustom : {}
ResourceType : Room
RecipientTypeDetails : RoomMailbox

The following properties are available to enable and configure varying calendar attributes on the Room Mailbox. The current values are default:

PS C:\> Get-CalendarProcessing -Identity BTConf | fl

RunspaceId : 735ed471-91a7-48c1-9e0b-d3a904582187
AutomateProcessing : AutoUpdate
AllowConflicts : False
BookingWindowInDays : 180
MaximumDurationInMinutes : 1440
AllowRecurringMeetings : True
EnforceSchedulingHorizon : True
ScheduleOnlyDuringWorkHours : False
ConflictPercentageAllowed : 0
MaximumConflictInstances : 0
ForwardRequestsToDelegates : True
DeleteAttachments : True
DeleteComments : True
RemovePrivateProperty : True
DeleteSubject : True
AddOrganizerToSubject : True
DeleteNonCalendarItems : True
TentativePendingApproval : True
EnableResponseDetails : True
OrganizerInfo : True
ResourceDelegates : {}
RequestOutOfPolicy : {}
AllRequestOutOfPolicy : False
BookInPolicy : {}
AllBookInPolicy : True
RequestInPolicy : {}
AllRequestInPolicy : False
AddAdditionalResponse : False
AdditionalResponse :
RemoveOldMeetingMessages : True
AddNewRequestsTentatively : True
ProcessExternalMeetingMessages : False
RemoveForwardedMeetingNotifications : False
MailboxOwnerId :
Identity :
IsValid : True

Configure Automatic Calendar Processing on the Room Mailbox:

Set-CalendarProcessing -Identity BTConf -AutomateProcessing autoaccept

The AutomateProcessing parameter enables or disables calendar processing on the mailbox. This parameter takes the following values:
* None If this parameter is set to None, both the resource booking attendant and the Calendar Attendant are disabled on the mailbox.
* AutoUpdate If this parameter is set to AutoUpdate, only the Calendar Attendant processes meeting requests and responses. This is the recommended setting.
* AutoAccept If this parameter is set to AutoAccept, both the Calendar Attendant and resource booking attendant are enabled on the mailbox. This means that the Calendar Attendant updates the calendar, and then the resource booking assistant accepts the meeting based upon the policies.
The default setting is AutoUpdate.

Finally, we’ll reset the user permissions on the Room mailbox:

PS C:\> Set-MailboxFolderPermission -Identity BTConf:\Calendar -User Default -AccessRights Author

We’ll assign PublishingEditor rights to just one user:

PS C:\> Set-MailboxFolderPermission -Identity BTConf:\Calendar -User JaneDoe -AccessRights PublishingEditor

This entry was posted in Exchange 2010 SP2, Exchange Cmdlets, Exchange Management Shell, PowerShell, PowerShell 3.0, WIndows 8.1 and tagged , . Bookmark the permalink.

One Response to Converting a User Mailbox to Resource Room Mailbox using PowerShell.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s