When you are setting, lots of meeting rooms up, it’s quite a tedious task to go through every single meeting room in manually set the meeting room options, this is where I think it was wise to crack out some scripting with powershell, and set options with a script.
Scripting ensures consistency across all the meeting rooms, and it’s not subject to human error, however, before you can script the settings, you need to know what you want set, this will depend on your organizational preferences, so please don’t just blindly follow this on your production system, as the scripts are subject to my specific requirements.
Create Teams for Rooms Script
First you need a CSV file with the following headers as below.......
Then you need to fill in the details for all the rooms you wish to create, so for example below is some of these values filled in:
Name: Bear Claws Room
DisplayName : Bear Claws Room
Capacity : 30
UPN: bear.claws@bear.local
Password: <password goes here>
Delegates: server.bear@bear.local
This would need to be added to the correct columsn in the CSV file, the you need to save that to a folder on the Exchange server, then you need the script below to make the rooms in Active Directory, just update <csv_path> with the path to your CSV file.
Import-Csv "<csv_path>"|%{New-Mailbox -Name $_.Name -DisplayName $_.Name -Database $_.Database -ResourceCapacity $_.Capacity-UserPrincipalName $_.UPN -Password (ConvertTo-SecureString $_.Password -AsPlainText -force) -Room }
Once you run that script, it will create all the rooms for you, automagically.
Set Options for your Meeting Rooms
This next section will get all the meeting room options, all you need for this CSV file is the "Name" of the room as per the last step.....
Import-Csv "<csv_path>" | %{Set-CalendarProcessing $_.Name -AllowConflicts $false -BookingWindowInDays 360 -EnforceCapacity $True -ProcessExternalMeetingMessages $True -MaximumDurationInMinutes 1440 -DeleteComments $False -DeleteSubject $False -RemovePrivateProperty $False -DeleteAttachments $False -AddOrganizerToSubject $true}
This will set the following options, you may require other options......
- Deny Conflicting Appointments.
- Enforce Capacity is enabled for meetings.
- Maximum meeting is 24 hours for this room.
- Allow External meetings from outside the company
- Allow booking up to 360 days ahead of todays date.
- No not delete comments added to meetings.
- Do not delete the subject of the meeting.
- If a meeting is private keep that tag so the meeting says "Private Appointment"
- Doo not delete attachments from the meeting if anything is attached.
- Show the name of the Organiser with the Meeting Subject.