Get-mailboxfolderpermission -identity room1@xyz.com:\calendar
Get-CalendarProcessing -Identity room1@xyz | Select-Object Identity,AutomateProcessing,ResourceDelegates,AllBookInPolicy,AllRequestInPolicy,AllRequestOutOfPolicy,BookInPolicy,RequestInPolicy,RequestOutOfPolicy,AllowConflicts,EnforceCapacity,MaximumDurationInMinutes
Bulk Script to extract mentioned meeting room booking access groups and its group members. -
Get-Content 'C:\New_Folder\123.txt' | Where-Object { $_ -and $_.Trim() -ne "" } | ForEach-Object { try { $roomEmail=$_.Trim(); $room=Get-Mailbox -Identity $roomEmail -ErrorAction Stop; $cal=Get-CalendarProcessing -Identity $room.Identity -ErrorAction Stop; $rows=@(); if($cal.AllBookInPolicy){ $rows += [pscustomobject]@{ Room=$room.DisplayName; RoomEmail=$room.PrimarySmtpAddress; BookingScope='AllBookInPolicy'; Group='Everyone'; GroupEmail=''; Member='All users'; MemberEmail=''; Status='OK' } }; $book=$cal.BookInPolicy | Where-Object { $_ -and $_.Trim() -ne "" }; if(-not $book -or $book.Count -eq 0){ $rows += [pscustomobject]@{ Room=$room.DisplayName; RoomEmail=$room.PrimarySmtpAddress; BookingScope='BookInPolicy'; Group='(none)'; GroupEmail=''; Member=''; MemberEmail=''; Status='No BookInPolicy entries' } } else { foreach($entry in $book){ $rec=Get-Recipient -Identity $entry -ErrorAction SilentlyContinue; if($null -eq $rec){ $rows += [pscustomobject]@{ Room=$room.DisplayName; RoomEmail=$room.PrimarySmtpAddress; BookingScope='BookInPolicy'; Group='(unresolved)'; GroupEmail=$entry; Member=''; MemberEmail=''; Status='Get-Recipient failed' } } elseif($rec.RecipientTypeDetails -match 'Group'){ $members=Get-DistributionGroupMember -Identity $rec.Identity -ResultSize Unlimited -ErrorAction SilentlyContinue; if(-not $members -or $members.Count -eq 0){ $rows += [pscustomobject]@{ Room=$room.DisplayName; RoomEmail=$room.PrimarySmtpAddress; BookingScope='BookInPolicy'; Group=$rec.DisplayName; GroupEmail=$rec.PrimarySmtpAddress; Member='(no members / hidden)'; MemberEmail=''; Status='Membership not retrievable or empty' } } else { $rows += $members | Select-Object @{n='Room';e={$room.DisplayName}}, @{n='RoomEmail';e={$room.PrimarySmtpAddress}}, @{n='BookingScope';e={'BookInPolicy'}}, @{n='Group';e={$rec.DisplayName}}, @{n='GroupEmail';e={$rec.PrimarySmtpAddress}}, @{n='Member';e={$_.DisplayName}}, @{n='MemberEmail';e={$_.PrimarySmtpAddress}}, @{n='Status';e={'OK'}} } } else { $rows += [pscustomobject]@{ Room=$room.DisplayName; RoomEmail=$room.PrimarySmtpAddress; BookingScope='BookInPolicy'; Group='(individual)'; GroupEmail=''; Member=$rec.DisplayName; MemberEmail=$rec.PrimarySmtpAddress; Status='OK' } } } }; $rows } catch { [pscustomobject]@{ Room=$roomEmail; RoomEmail=$roomEmail; BookingScope='(error)'; Group=''; GroupEmail=''; Member=''; MemberEmail=''; Status=$_.Exception.Message } } } | Export-Csv 'C:\New_Folder\RoomBookingAccess.csv' -NoTypeInformation -Encoding UTF8