Set-ResourceConfig -ResourcePropertySchema ("Room/TV","Room/Drapes","Room/Chair","Room/Stool","Room/WhiteBoard")
$config=Get-ResourceConfig
$config.ResourcePropertySchema+=("Equipment/FourDoors","Equipment/Manual","Equipment/Automatic","Equipment/Cherry")
$config.ResourcePropertySchema+=("Equipment/Bagless","Equipment/12sets")
Set-ResourceConfig -ResourcePropertySchema $config.ResourcePropertySchema

New-Mailbox -Name "Conference" -Room -ResourceCapacity 25

Set-Mailbox -Identity "Conference" -ResourceCustom ("TV","Stool","VCR")
The resource search property value "VCR" is not valid.
+ CategoryInfo : NotSpecified: (Conference:ADUser) [Set-Mailbox], RecipientTaskException
+ FullyQualifiedErrorId : AF7DC6A3,Microsoft.Exchange.Management.RecipientTasks.SetMailbox

To use "VCR", you must define it as follows:

$config.ResourcePropertySchema+=("Room/VCR")
Set-ResourceConfig -ResourcePropertySchema $config.ResourcePropertySchema

And then, the following cmdlet works.

Set-Mailbox -Identity "Conference" -ResourceCustom ("TV","Stool","VCR")

New-Mailbox -Name "Vehicle" -Equipment

Set-Mailbox -Identity "Vehicle" -ResourceCapacity 4 -ResourceCustom ("TV","FourDoors","Automatic")
The resource search property value "TV" is not valid.
+ CategoryInfo : NotSpecified: (Vehicle:ADUser) [Set-Mailbox], RecipientTaskException
+ FullyQualifiedErrorId : 6C25B0CC,Microsoft.Exchange.Management.RecipientTasks.SetMailbox

The "TV" is a room property.

The following cmdlet works.

Set-Mailbox -Identity "Vehicle" -ResourceCapacity 4 -ResourceCustom ("FourDoors","Automatic")

$global=Get-GlobalAddressList "Default Global Address List"
Get-Recipient -RecipientPreviewFilter $global.recipientfilter


New-AddressList "Resources" -IncludedRecipients Resources
$resources=Get-AddressList Resources
get-recipient -RecipientPreviewFilter $resources.RecipientFilter | fl name

Name : Vehicle
Name : Conference

The resources address list include both ROOM and EQUIPMENT.

Update-AddressList "Resources"


Because there is ALL ROOMS address list, the following will create ALL EQUIPMENTS address list

New-AddressList "All Equipments" -RecipientFilter {recipientDisplayType -eq 'EquipmentMailbox'}

$list=Get-AddressList "All Equipments"
get-recipient -RecipientPreviewFilter $list.RecipientFilter | fl name

Name : Vehicle

Update-AddressList "All Equipments"


The default recipientFilter for ALL ROOMS address list is:

$room=Get-AddressList "All Rooms"
$room.RecipientFilter

conference

((Alias -ne $null) -and (((RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox'))))

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

equipment

 

From outlook, conference and vehicle are listed with description.

resources


In-Policy

resourcePolicy

The AutoProcessing property of a mailbox (including Room mailbox) is set to AutoUpdate. It allows the Calendar Assistant to place tentative meeting requests into a mailbox calendar. You have to open and respond (Accept or Reject) to the meeting request. Because a room mailbox is associated with a disabled user account, you have to grant FULLACCESS mailbox permission to the delegates of the room mailbox. The delegates can open the room mailbox to process the meeting requests.

Set-CalendarProcessing "Conference" -ResourceDelegates albert@1ask2.com

When AutoProcessing property is set to AutoAccept, it enable "Resource Booking Attendant".

When AutoProcessing property is set to NONE, it would accept any meeting request.


Set-CalendarProcessing "Conference" -AllRequestInPolicy $True -AllBookInPolicy $False -AutoProcessing "AutoAccept"

When booking the conference room, the delegate will receive email as:

1


Set-CalendarProcessing "Conference" -AllRequestInPolicy $True -AllBookInPolicy $True -AutomateProcessing "AutoAccept"

2

If AllBooInPolicy is set to $True, the book assistant will ignore the settings of AllRequestInPolicy and AllBookInPolicy.

Set-CalendarProcessing "Conference" -AllRequestInPolicy $false -RequestInPolicy Sam@1ask2.com -AllBookInPolicy $True -AutomateProcessing "AutoAccept" -ResourceDelegates albert@1ask2.com

When Sam books a meeting request, the conference room mailbox is still automatically accepted or rejected without the delegate:albert's consent.


Out-of-Policy

Set-CalendarProcessing "Conference" -AllRequestInPolicy $false -RequestInPolicy Sam@1ask2.com -AllBookInPolicy $True -AutomateProcessing "AutoAccept" -ResourceDelegates albert@1ask2.com -MaximumDurationInMinutes 20 -AllRequestOutOfPolicy $false -RequestOutOfPolicy "administrator@1ask2.com"

When Administrator creates a meeting request of 30mins, it automatically receives a Tentative Accept message from CONFERENCE room mailbox. The delegate:albert has to process it.

When Sam creates a meeting request of 30mins, it automatically receives a Declined message from CONFERENCE room mailbox:

Your meeting request was declined.

This resource doesn't accept meetings longer than 20 minutes.