Click here to monitor SSC
Av rating:
Total votes: 57
Total comments: 8


Nathan Winters
Using Exchange 2007 for Resource Booking
16 July 2008

The process of booking various resources to go with a meeting room just got a whole lot easier with Exchange 2007. Nathan Winters explains Exchange’s resource-scheduling functionality and offers practical advice on how you might go about configuring Exchange to allow users who are scheduling meetings to specify that such things as video conferencing, projection equipment, and refreshments are required for the meeting.

Introduction

Although previous versions of Exchange were regularly used to host mailboxes that represented resources, Exchange 2007 was the first version in which these mailboxes were actually different from normal mailboxes. This means that there is now no need to rely on add-in software such as the ‘Auto Accept Agent’. It also means that the design process has been rather more thought through, thereby ensuring a useful solution both at the server and client end.

In Exchange 2007, it is possible to create resource mailboxes that can represent either Rooms or Equipment. These exist as disabled accounts in Active Directory and can be managed in various ways. Exchange 2007 also contains the type of ‘Auto Accept Agent’ functionality that was missing from Exchange 2003. Having a mailbox type of "Resource" is useful because it makes administration separate. It allows these mailboxes to have special functionality but yet to be secure as disabled users. It is also helpful to be able to distinguish between rooms and equipment as it is easier for users, and gives more flexibility when adding custom resource properties, as we shall see later.

With the ‘Availability Service’ it is now possible to get real-time information about resource availability without the need to wait for public folder replication to occur (so long as Outlook 2007 is being used). To make best use of this solution you must ensure that Outlook 2007 is being used by those who will be interacting with the resources and managing their use. This is important because much of the user interface, such as the Scheduling Assistant, is held in Outlook 2007. I would however be careful in rolling out Outlook 2007 to the entire user base before thorough testing is carried out. Unless you are careful, you will have dissatisfied users; this is because Outlook 2007 does not always perform as expected, especially with third party add-ons.

Environment

My test environment consists of servers in two sites. Each site has a Mailbox server and a combined Hub-Transport and Client-Access server. Outlook 2007 and OWA 2007 are used as clients. Various users have been set-up in each site such as users, admin users (secretaries), resources (projectors), and rooms. I have configured such a test environment because it is useful to be able to show different sites with a different naming convention. Equally I was interested to see how time zones are handled and discovered that, in my view, this could be done better. For example, as I’ll mention later, Outlook is not as flexible as I would like in helping people to arrange meetings in different time zones that require a room in each zone. You could easily test the vast majority of this functionality on a single Exchange server with a single Outlook client.

Creating or Migrating resource mailboxes

The resource mailboxes can be created from the GUI or from the command line as shown below:

New-Mailbox -database "Siteamb1\SG1\DB1" -Name SiteA-Room1 -
OrganizationalUnit
"SiteA Rooms" -DisplayName "SiteA-Room1" -
UserPrincipalName SiteA-Room1@gaots.co.uk -Room

Note - If you are migrating the resource mailboxes from an Exchange 2003 system, then use one of the following commands to convert the migrated mailbox to a resource, either ‘room’ or ‘equipment’ as you wish.

Set-Mailbox -Identity Name -Type Room

Set-Mailbox -Identity Name -Type Equipment

Before moving on, the resource mailboxes must be set-up to ‘auto accept’ meeting requests; otherwise they will always remain as ‘tentative’ until an operator intervenes. This is done as follows:

Get-Mailbox | where {$_.ResourceType -eq "Equipment"} | Set-MailboxCalendarSettings -AutomateProcessing:AutoAccept

 

Get-Mailbox | where {$_.ResourceType -eq "Room"} | Set-
MailboxCalendarSettings -AutomateProcessing:AutoAccept

Once suitably configured as above, each resource mailbox will send an auto-accept message to meeting organizers (Figure 1). The message text can be customized to suit requirements.

Figure 1 – Showing auto acceptance. This message can be customized.

Feature Investigation 

I have now discussed how to create resource mailboxes and how to configure their basic option of responding by accepting requests. As you saw, the initial setup is really fairly simple; it is just important to remember that, when migrating from 2003, you must convert the mailbox to the new resource type. Now, let’s move on and look at some of the key resource-centric features that Exchange 2007 offers.

Security and Booking Policies 

Both security configuration and booking policies allow the administrator to grant control of resource mailboxes to certain users: Those users (using Outlook Web Access) can then define how they are used. For example, it is possible to specify the maximum meeting duration, to define and allow meetings to be scheduled only during working hours and to define how to handle conflicts.

The first step is to setup the resource-admin users as ‘delegates’ of the specific resources in each site. The command below will get mailboxes with the type Equipment or Room and with “sitea” in the name. It will then give Delegate access to the account “siteaadmin”. I have repeated the steps for siteb:

Get-Mailbox -RecipientTypeDetails EquipmentMailbox, RoomMailbox | Where {$_.Name

-match "^sitea"} | Set-MailboxCalendarSettings -ResourceDelegates siteaadmin 
 

Get-Mailbox -RecipientTypeDetails EquipmentMailbox, RoomMailbox | Where {$_.Name -match "^siteb"} | Set-MailboxCalendarSettings -ResourceDelegates sitebadmin

The ‘delegate user’ for each resource mailbox may be sent a copy of the meeting requests which go to that resource depending on policy, and they are then able to accept or reject these requests.

Next set-up the admin accounts in sitea and siteb to have full access to their respective resources. The command below is for siteb:

Get-Mailbox -RecipientTypeDetails EquipmentMailbox, RoomMailbox | Where {$_.Name -match "^siteb"} | Add-MailboxPermission -AccessRights FullAccess -User sitebadmin

With Full Admin permissions on the resource mailbox, the admin user can then open the mailbox as an additional mailbox in Outlook and have full control of all functions. Most important of these is the OWA Options/Resource Settings section of a resource mailbox: This is used to configure some of the Resource options such as; "Resource Scheduling Options", "Resource Scheduling Permissions", "Resource Privacy Options", and "Response Message". Every option that is available via the shell is also available in OWA as shown in Figure 2.

To access the relevant mailbox in OWA you will need to access a specific URL:

http://servername/owa/ResourceMailbox@domain.com

… and then log in with the account which has Full Access rights. Click on the Options button in the top right hand corner and then, in the left hand pane, click on the Resource Settings section.

Figure 2 – The Resource Settings page in OWA options

Once you have reached the Resource Settings section of the mailbox options in OWA, you can see the policies that are available. There are three policies, BookInPolicy, RequestInPolicy, and RequestOutOfPolicy.

  • BookInPolicy is a list of users who can schedule the resource automatically. By default it is set to Everyone.
  • RequestInPolicy is a list of users who can request to schedule to resource and have to have it authorized by the resource administrator.
  • RequestOutOfPolicy is a list of users who can submit a request for a resource even if it is already booked. (This might for example be used for the CEO!)

This page enables you to allow conflicts, set maximum meeting length, allow recurring meetings, customize the text of notification mails and a host of other settings.

A policy example

So what if you want to set a policy that makes it mandatory for a delegate to authorise the request when anyone books catering?

This can be done by first setting up the delegate for the catering resource mailbox as above. Then log into OWA (also as above) and set the “These users can schedule automatically if the resource is available:” policy to “Select Users and Groups”. On the “These users can submit a request for manual approval if the resource is available:” policy to “Everyone”. Save the settings.

At this point, when anyone tries to submit a request, the delegate user will get a mail like the one in Figure 3.


Figure 3 –
The Request info forwarded to delegates

The delegate user can then accept the request (and go ahead and book the catering with the caterer!).

Meanwhile the requesting user will get a mail as in Figure 4, showing the pending request. The meeting is held as tentative to prevent the resource being booked by someone else.

Figure 4 – The Tentative mail received by the user whilst waiting approval

Once the delegate user approves the request, the meeting will be booked and acceptances sent out.

More info about the policies and the shell commands available can be found here:

http://technet.microsoft.com/en-us/library/aa996340.aspx

http://technet.microsoft.com/en-us/library/bb124987(EXCHG.80).aspx

Viewing Meeting rooms

So what does this look like from the client perspective? In Outlook 2007 it is possible to see all rooms, and their availability, in one window by using the Scheduling Assistant in Outlook 2007 as shown in Figure 5.


Figure 5 –
The Scheduling Assistant

All rooms can be added from the “Add Rooms” button. In the main window you will see which rooms are available: this is supplemented by the “Suggested Times” area on the right hand side.

Although it isn’t obvious, it is possible to set the meeting time zone when creating a meeting using the Time Zones button highlighted in Figure 5. However, it is not possible to view and additional time zone in the scheduling assistant as you can in the main Outlook calendar.

Scheduling resources

The Scheduling tab is where most bookings will take place. The basic scheduling of resources is simple. First open a meeting request and enter a subject and if necessary, the attendees. Next move to the Scheduling tab. Use the new ‘Add Rooms’ button to open the window shown in Figure 6. This shows the ‘All Rooms’ address list which gives a view of the capabilities of each room. As you can see, ‘SiteB-Room2’ is listed with a capacity of 2 which is a default property that can be customized on each room, using the Exchange Management Console as shown in Figure 7.

Figure 6 – The All Rooms address list

Figure 7 – Setting the capacity of the Room

If you are searching for an available room, then select those with the correct properties (such as capacity), and add them.

When back on the Scheduling tab, you can then use the ‘attendees’ tab to add other attendees or resources such as projectors. Figure 8 below shows the booking facilities.

Figure 8 – Scheduling tab showing users, resources, and rooms

Custom Resource Properties

As I mentioned earlier it is possible to add custom properties to resource mailboxes. If, for example, you have a catering menu and you want to use a resource mailbox to identify the menu code, then firstly create the custom resource types as follows.

First read the current resource configuration and store it in a temporary variable called $ResourceConfiguration by running the following command:

$ResourceConfiguration = Get-ResourceConfig

Next create your custom properties, in this case sandwich types - Fish, Vegetarian, Meat:

$ResourceConfiguration.ResourcePropertySchema+=("Equipment/Fish")

$ResourceConfiguration.ResourcePropertySchema+=("Equipment/Vegetarian")

$ResourceConfiguration.ResourcePropertySchema+=("Equipment/Meat")

Finally update the resource configuration of your organization by using the modified resource property schema, using the following command:

Set-ResourceConfig -Instance $ResourceConfiguration

Once you have created the custom resource properties, you will then add them to the relevant resource mailbox: this can be done in Exchange Management Console. The example shown in Figure 9 shows two catering menus:

Figure 9 – Showing the method of adding custom resources

Having done that, one way to view these extended attributes is by using the PowerShell command below:

Get-Mailbox -RecipientTypeDetails RoomMailbox |fl Name,ResourceCustom

However, with a little more investigation, I have found another more user-friendly way!

As it would appear that only the ‘All Rooms’ address list has the right GUI part to show the “Description” field, I have edited the filter to include the EquipmentMailbox type as well.

Figure 10 – The combined Rooms and Equipment resources showing custom properties

I used this command to edit the filter.

Set-AddressList -Identity "All Rooms" -RecipientFilter {(Alias -ne $null -and (RecipientDisplayType -eq 'ConferenceRoomMailbox' -or RecipientDisplayType -eq
'SyncedConferenceRoomMailbox' -or RecipientDisplayType -eq 'EquipmentMailbox'))}

The results of the filter change are shown in Figure 10.

Summary

This article describes the Exchange Resource Scheduling functionality. I realize I haven’t covered every single feature, but I have aimed at doing enough to give you the skills needed to continue developing your resource booking solution using Exchange 2007.

In general, with a little investigation and some color-coding in Outlook, you can create a decent resource booking system. Of course it is not as polished as some of the 3rd party systems, but then a lot of them are not that great!

Some improvements are necessary in the user-interface. For example, when you are adding custom resource properties you can't actually see them in Outlook unless you are modifying the Rooms address list. It should be possible to use the Exchange Web Services to create a custom front end for working with the ‘resource mailboxes’ that you create. Let’s hope someone does it soon.



This article has been viewed 98629 times.
Nathan Winters

Author profile: Nathan Winters

Nathan Winters is the unified communications lead at Grey Convergence, a specialist Microsoft partner for unified communications and collaboration. Nathan has been working in IT for eight years and specializes in unified communications with a focus on Microsoft Exchange and Office Communications Server. Nathan has consulted at numerous Fortune 100 companies across a variety of vertical markets. In 2006, Nathan founded the Microsoft Messaging and Mobility User Group UK, which holds regular meetings in the UK to discuss topics related to Exchange. In 2007, Nathan was named an MVP (Exchange Server) for his work with MMMUG and his regular contributions to the Mark Minasi Forum, and he has received the same honor each year since. Nathan’s articles have been published on leading websites and magazines, including Windows IT Pro Magazine, MSExchange.org, Simple-Talk.com, Microsoft (TechNet Industry Insiders), and the MMMUG website. You can contact Nathan at nathan@clarinathan.co.uk or through his blog at http://www.nathanwinters.co.uk.

Search for other articles by Nathan Winters

Rate this article:   Avg rating: from a total of 57 votes.


Poor

OK

Good

Great

Must read
 
Have Your Say
Do you have an opinion on this article? Then add your comment below:
You must be logged in to post to this forum

Click here to log in.


Subject: Resource Booking needs more referencial integrity.
Posted by: Alex Kuznetsov (view profile)
Posted on: Thursday, July 17, 2008 at 8:43 AM
Message: Recently I scheduled a meeting using this system. I reserved a conference room all right, the feature looked very cool. However, between the time I scheduled it and the time of the meeting, the conference room was converted into a personal office, and as such was removed from the list of available resources. Yet the reservation for a non-existent resource still remained, visible in Outlook to all the party invited to the meeting!

I know that foreign key constraints involving windows of valifity (validFrom, validTo) are complex, but they are doable.

Subject: Resource Booking alternative to Exchange Store
Posted by: pronestor (view profile)
Posted on: Monday, July 06, 2009 at 3:38 PM
Message: Using Exchange for room booking is not optimal - a few points to back it up is the lack of handling pre- and post time, booking room for just 2 hours of the meeting period, booking food services etc.
We have launched a S+S solution that solves some of the issues within resource booking in Exchange.
It does not require any changes or installation into Exchange - it requires installation of an add-in and thats it.
Take a look - any input is more than welcome.
http://www.pronestor.com

Subject: Sending notifications with schedueling resources
Posted by: PBarnes (view profile)
Posted on: Thursday, March 11, 2010 at 3:35 PM
Message: I am attempting to notify users when resources are booked/schedueled. Do you know how/if this is possible?

Subject: How do you view the details of the resource?
Posted by: wpg_guy_79 (view profile)
Posted on: Monday, May 10, 2010 at 10:40 AM
Message: I've done all the commands to basically see the resource. I have the resource automatically accept the request. Once it accepts the request I can't see any details on the resource. I can only see if it is free/busy and not the details of the resource. Any ideas?

Subject: Can't see details of who booked the resource
Posted by: Dazman98 (view profile)
Posted on: Tuesday, September 21, 2010 at 2:20 AM
Message: Hi
I have the same issue as 'wpg_guy_79'
Meetings are auto accepted successfully by the Resource Room, but no one (other than a user with Full Access) can see the person who booked the room or the Subject of the booking when viewing the room in the Scheduling Assistant.
Can someone please post a solution on how I can set all users can see these details without giving them Full Access.
Thanks

Subject: This may help you...
Posted by: prShadoko (view profile)
Posted on: Thursday, October 14, 2010 at 9:26 AM
Message: Hi wpg_guy_79 & Dazman98 ! I might have a solution for you.
1.Give yourself full access
2.Open the resource calendar
3.In its properties dialog, "Permissions" tab, set "Default" permission level to "Reviewer"
4.You can disable full access
5.Restart Outlook

Now everyone should be able to see the calendar but not to edit it.

Tell me if you have any trouble with this. Have a nice day! ;)

Subject: move room mailbox to diferent storage group
Posted by: Myftiu67 (view profile)
Posted on: Wednesday, February 09, 2011 at 5:03 PM
Message: Hi,

I am not able to move room mailbox to a diferent storage group, Exhange 2007.

Below is the error:
Summary: 1 item(s). 0 succeeded, 1 failed.
Elapsed time: 00:00:30


London (Tim's Room) - Ground Floor - 4People - Normal Telephone (only Available when Tim is not in the office. Check his calendar before booking)
Failed

Error:
Error was found for London (Tim's Room) - Ground Floor - 4People - Normal Telephone (only Available when Tani is not in the office. Check his calendar before booking) (london@contentandcode.com) because: Error occurred in the step: Preparing mailbox to be moved. Failed to copy basic mailbox information with error: An internal processing error has occurred. Try restarting the Exchange System Manager or the Microsoft Exchange Information Store service, or both., error code: -1056749241

Exchange Management Shell command attempted:
'internal.contentandcode.com/Users/London (Tim''s Room)' | move-mailbox -TargetDatabase 'GONZO\BusinessUnits\HR Finance Marketing'

Elapsed Time: 00:00:30

Any idea?

Thanks
Dritani

Subject: Combining Room / Equipment resources
Posted by: Dun1 (view profile)
Posted on: Wednesday, November 23, 2011 at 5:43 PM
Message: I don't quite follow how you ended up with both Rooms and Equipment inside the 'All Rooms' address list. Is it just a case of following those PowerShell commands?

 





Migrating to Microsoft BPOS - Part II
 In his last article, Johan gave us a crystal clear guide to preparing to migrate from an on-premises... Read more...

Monitoring Mailbox Moves
 Mailboxes moves happen all the time, and given how precious the data in mailboxes can be, you should... Read more...

Emulating the Exchange 2003 RUS for Out-of-Band Mailbox Provisioning in Exchange 2007
 Exchange's Recipient Update Service was important in Exchange 2000 or 2003 in order to complete the... Read more...

The Postmasters
 The Exchange Team introduces themselves, and keeps you up-to-date Read more...

For this Exchange Server Archiver, “Transparency” Fits
 Sometimes, it is a great relief when a user of your software gives it a tough test and then reports... Read more...

Upgrade Exchange 2003 to Exchange 2010
  In this article, the first of two in which Jaap describes how to move from Exchange Server 2003... Read more...

Upgrade Exchange 2003 to Exchange 2010 - Part II
 In Jaap's second article on upgrading straight from Exchange Server 2003 to 2010, he explains how to... Read more...

Goodbye Exchange ExMerge, Hello Export-Mailbox
 ExMerge was a great way of exporting a mailbox to an Exchange PST file, or for removing all occurences... Read more...

Using Exchange 2007 for Resource Booking
 The process of booking various resources to go with a meeting room just got a whole lot easier with... Read more...

Managing Exchange 2007 Mailbox Quotas with Windows PowerShell
 The use of PowerShell with Exchange Server 2007 can do a great deal to ease the task of managing... Read more...

Over 400,000 Microsoft professionals subscribe to the Simple-Talk technical journal. Join today, it's fast, simple, free and secure.

Join Simple Talk