Unfortunately, Exchange 2019 only offers a few settings for resource mailboxes (room and device mailboxes) in the Exchange Administrative Center. Many settings for booking permissions or calendar settings can only be managed via the Exchange Management Shell.
Create resource mailboxes with the Exchange Management Shell
With small PowerShell scripts, resource mailboxes can be created quickly and always according to the same scheme. Here are two examples for a room mailbox and a device mailbox. These two cases have often been requested by readers. On the one hand, a meeting room should only be bookable by certain people. A device mailbox, which is used as a vacation calendar, should accept bookings from several people at the same time.
Room mailboxes
Room mailboxes can be created easily using the Exchange Management Shell. One line is sufficient to create a room mailbox:
New-Mailbox -Alias ITRoom1 -Name "IT meeting room" -Room

The newly created room mailbox "IT meeting room" now has the following calendar settings:

However, the default setting for "AutomateProcessing" is not ideal, as the room should automatically accept valid booking requests. However, if the setting for "AutomateProcessing" is changed from "AutoUpdate" to "AutoAccept", the room mailbox accepts booking requests from all Exchange users.
With the following command, the room mailbox will automatically only accept booking requests from members of the "IT_Department" group:
Set-CalendarProcessing ITRoom1 -AutomateProcessing AutoAccept -BookInPolicy IT_Department -AllBookInPolicy $false

The necessary settings for room mailboxes can be automated using a small PowerShell script:
$RoomMailboxName = "Marketing meeting room"
$RoomMailboxAlias = "Marketing_Besprechungsraum"
$RoomMailboxBookInPolicy = "Marketing_Department"
$NewRoomMailbox = New-Mailbox -Alias $RoomMailboxAlias -Name $RoomMailboxName -Room
$NewRoomMailbox | Set-CalendarProcessing -AutomateProcessing AutoAccept -BookInPolicy $RoomMailboxBookInPolicy -AllBookInPolicy $false
Get-CalendarProcessing $NewRoomMailbox | fl
This simple example creates a room mailbox with the display name "Marketing meeting room" and the alias "Marketing_meeting_room". The booking authorization is then assigned to the "Marketing Department" distribution group. This means that only members of the "Marketing Department" group can book the room:

Further parameters can be easily added to the script and adapted to your own requirements. For example, by default, the room mailbox only accepts booking requests that do not exceed 24 hours (MaximumDurationInMinutes=1440). If longer periods are to be accepted, the script can be changed as follows, for example:
$RoomMailboxName = "Marketing meeting room"
$RoomMailboxAlias = "Marketing_Besprechungsraum"
$RoomMailboxBookInPolicy = "Marketing_Department"
$NewRoomMailbox = New-Mailbox -Alias $RoomMailboxAlias -Name $RoomMailboxName -Room
$NewRoomMailbox | Set-CalendarProcessing -AutomateProcessing AutoAccept -BookInPolicy $RoomMailboxBookInPolicy -AllBookInPolicy $false -MaximumDurationInMinutes 7200
Get-CalendarProcessing $NewRoomMailbox | fl
In this way, every parameter for the calendar settings can be changed in one step. Room mailboxes can therefore always be created according to the same scheme.
Device mailboxes
Device mailboxes can be set up in the same way as room mailboxes, but they often require slightly different settings. Device mailboxes are often used for all types of calendars, not just devices such as projectors or vehicles, but also frequently for vacation calendars.
A device mailbox can be created using the following command:
New-Mailbox -Alias vacation-calendar -Name "vacation-calendar" -Equipment

Here too, the booking settings are usually not ideal, for example, the calendar should accept booking requests directly and, in the case of a vacation calendar, also allow several people to book at the same time. In addition, longer booking periods are common for vacation calendars. As with room mailboxes, the settings can therefore be adjusted:
Set-CalendarProcessing VacationCalendar -AutomateProcessing AutoAccept -MaximumDurationInMinutes 40230 -AllowConflicts $true

These settings can also be automated with a small PowerShell script. If desired, the booking can also be restricted to certain groups. Here is an example:
$EquipmentMailboxName = "Vacation Calendar Marketing"
$EquipmentMailboxAlias = "Vacation_Marketing"
$EquipmentMailboxBookInPolicy = "Marketing_Department"
$NewEquipmentMailbox = New-Mailbox -Alias $EquipmentMailboxAlias -Name $EquipmentMailboxName -Room
$NewEquipmentMailbox | Set-CalendarProcessing -AutomateProcessing AutoAccept -MaximumDurationInMinutes 40230 -AllowConflicts $true -BookInPolicy $EquipmentMailboxBookInPolicy
Get-CalendarProcessing $NewEquipmentMailbox | fl

These small scripts can be saved on the Exchange server, for example, and can be easily adapted and executed as required.
Das letzte dargestellte Powershell Script des Artikels zum „Urlaubskalender Marketing“ hat in Zeile 4 einen Fehler:
$NewEquipmentMailbox = New-Mailbox -Alias $EquipmentMailboxAlias -Name $EquipmentMailboxName -Room
Es soll dem Text entsprechend -Equipment am Ende stehen, nicht -Room, oder?
Das ist natürlich erst die Spitze des Eisbergs ;-)
Allein mein Script zur Ressourcenerzeugung ist ca. 240 Zeilen lang und greift noch auf verschiedene andere Hilfsscripte zurück… Da wird die Ressource angelegt, dabei der Alias aus dem Namen abgeleitet, Gruppen für Vollzugriff und Buchungsberechtigung nach dem Schema – erzeugt und berechtigt und die Postfachsprache auf deutsch gestellt.
Wer eine Exchange-Organisation mit mehr als einer Handvoll Postfächer betreut kommt an Powershell und maßgeschneiderten Scripten nicht vorbei :-) (Unsere gesamte (Git-)Exchange-Script-Fabrik umfasst derzeit ca 2MB, Tendenz weiter wachsend ;-) )
oh, alles in spitzen Klammern verschwindet… also anders: „nach dem Schema Funktionspräfix-Postfachalias erzeugt“
Hallo Frank
toller Artikel. Was ich noch nie fertig gebracht habe ist eine Room-Mailbox die, wenn per Mail mit aktiviertem „Privat“ gebucht, nur den zum Meeting eingeladenen Personen die Details wie Betreff und angehängte Dokumente zeigt wenn alle Mitarbeiter diesen Raum buchen können. Gibt es da eienen Kniff den ich übersehen habe?
Gruss
Romano
Nein das geht nicht. Und bitte berücksichtigen, dass das „privat“ flag im owa nicht greift. Da kann man dann trotzdem alles sehen.
Danke, war mir nicht bewusst. Wohl zu wenig getestet…
Ich würde das so lösen:
1. Default-Kalenderrechte auf „Free/Buisy“ setzen
2. den Usern mitteilen, dass bei der Raumbuchung das Flag „privat“ nicht mehr genutzt werden soll/darf
Jetzt sollten eigentlich alle eingeladenen Personen in ihrem eigenen Kalender alle Details sehen können und im Raumkalender immer nur „belegt“ sichtbar sein.
Peter