43 lines
1.5 KiB
PowerShell
43 lines
1.5 KiB
PowerShell
# Create a group and add it to all room mailboxes as an editor
|
|
#
|
|
# Uses the new PowerShell "module" that support MFA.
|
|
#
|
|
|
|
# What do you want the editors group to be called?
|
|
$editorsGroup = 'Calendar Editors'
|
|
|
|
# Who do you want to be in the group? This can be 1 or more people.
|
|
$editorsMembers = @('','')
|
|
|
|
# Find and load the new ExO "module"
|
|
$exoModulePath = (Get-ChildItem -Path $env:userprofile -Filter CreateExoPSSession.ps1 -Recurse -Force -ErrorAction SilentlyContinue).DirectoryName[-1]
|
|
. "$exoModulePath\CreateExoPSSession.ps1"
|
|
|
|
# Establish a session to Exchange Online
|
|
Connect-EXOPSSession
|
|
|
|
# Get all room mailboxes in the organisation
|
|
$roomMailboxes = (Get-Mailbox -RecipientTypeDetails RoomMailbox).Alias
|
|
|
|
# If the editors group doesn't exist, create it.
|
|
if (!(Get-DistributionGroup -Identity $editorsGroup -ErrorAction SilentlyContinue)) {
|
|
New-DistributionGroup -Name $editorsGroup -Type Security
|
|
}
|
|
|
|
# Add members to the group
|
|
$existingMembers = Get-DistributionGroupMember -Identity $editorsGroup
|
|
foreach ($editorsMember in $editorsMembers) {
|
|
if ($editorsMember -notin $existingMembers.Name) {
|
|
Add-DistributionGroupMember -Identity $editorsGroup -Member $editorsMember
|
|
}
|
|
}
|
|
|
|
# Add the permissions to the mailboxes
|
|
foreach ($roomMailbox in $roomMailboxes) {
|
|
$calendarFolder = $mailboxAlias + ':\calendar'
|
|
Add-MailboxFolderPermission -Identity $calendarFolder -User $editorsGroup -AccessRights Editor
|
|
}
|
|
|
|
# End the Exchange Session
|
|
Get-PSSession | Where-Object {$_.ComputerName -eq 'outlook.office365.com'} | Remove-PSSession
|