For Office 365 first run: Script: Connect-Office365.ps1


 if ($Office365 -ne "True")
{
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Setup
Add-PSSnapin Microsoft.Exchange.Management.Powershell.Support
}

Write-Host "******************************************************************************************************************"
Write-Host "* Script zum Berechtigen von Benutzern auf Raum-Maiboxen *"
Write-Host "******************************************************************************************************************"
Write-Host "* Eingabe der Mailbox nach Name oder Parameter: *"
Write-Host "* *"
Write-Host "* Eingabe: many Es wird ein zusätzlicher Filter für den Namen abgefragt *"
Write-Host "* Eingabe: all Es werden alle Mailboxen abgefragt! *"
Write-Host "******************************************************************************************************************"
Write-Host "* Mögliche Rollen: *"
Write-Host "* *"
Write-Host "* None FolderVisible *"
Write-Host "* Owner CreateItems,ReadItems,CreateSubfolders,FolderOwner,FolderContact,FolderVisible, *"
Write-Host "* EditOwnedItems,EditAllItems,DeleteOwnedItems,DeleteAllItems *"
Write-Host "* PublishingEditor CreateItems,ReadItems,CreateSubfolders,FolderVisible,EditOwnedItems,EditAllItems, *"
Write-Host "* DeleteOwnedItems,DeleteAllItems *"
Write-Host "* Editor CreateItems,ReadItems,FolderVisible,EditOwnedItems,EditAllItems,DeleteOwnedItems, *"
Write-Host "* DeleteAllItems *"
Write-Host "* PublishingAuthor CreateItems,ReadItems,CreateSubfolders,FolderVisible,EditOwnedItems,DeleteOwnedItems *"
Write-Host "* Author CreateItems,ReadItems,FolderVisible,EditOwnedItems,DeleteOwnedItems *"
Write-Host "* NonEditingAuthor CreateItems,ReadItems,FolderVisible *"
Write-Host "* Reviewer ReadItems,FolderVisible *"
Write-Host "* Contributor CreateItems,FolderVisible *"
Write-Host "* AvailabilityOnly View only availability data *"
Write-Host "* LimitedDetails View availability data with subject and location *"
Write-Host "******************************************************************************************************************"
$Room = Read-Host "Geben Sie die Zielmailbox ein"
$Language = Read-Host "Mailboxsprache (en/de)?"
$Benutzer = Read-Host "Welchen Benutzer eintragen?"
$Rolle = Read-Host "Welche Rolle zuweisen?"

# Definition benötigter Parameter

$Folder = ""

# Sprache setzen

if ($Language -eq "en")
{
$Folder = "Calendar"
}
elseif ($Language -eq "de")
{
$Folder = "Kalender"
}
else
{
Write-Host "Sprache nicht definiert!"
}
if (($Room -eq "many") -AND ($Folder -ne ""))
{
$Filter = Read-Host "Suchfilter für die Mailboxen"
$rooms = Get-Mailbox -RecipientTypeDetails RoomMailbox | Where-Object { $_.name -match $Filter }
ForEach ($mailbox in $rooms)
{
Add-MailboxFolderPermission $mailbox":\$Folder" -User $Benutzer -AccessRights $Rolle
Write-Host $mailbox.name
}
}
elseif (($Room -eq "all") -AND ($Folder -ne ""))
{
$rooms = Get-Mailbox -RecipientTypeDetails RoomMailbox
ForEach ($mailbox in $rooms)
{
Add-MailboxFolderPermission $mailbox":\$Folder" -User $Benutzer -AccessRights $Rolle
Write-Host $mailbox.name
}
}
elseif ($Folder -ne "")
{
Add-MailboxFolderPermission $Room":\$Folder" -User $Benutzer -AccessRights $Rolle
Write-Host $Room.name
}

Read-Host 'Press Enter to continue...' | Out-Null