type02
Goto Top

Kalenderberechtigung aller Benutzer in einer Domäne zurücksetzen

Hallo Kollegen,

benötige Eure Hilfe!

Mitarbeiter im Unternehmen haben Kalenderfreigaben untereinander eigenverantwortlich verwaltet. Nun ist die Mitarbeiterzahl stark gestiegen und jetzt muss eine einheitliche Regelung für alle User her.
1. Benutzer haben unzählige Berechtigungen unter deren eigenen Kalendern gesetzt, welche gelöscht werden müssen. Praktisch wäre hier ein Skript für die Exchange Managment Shell. Meine bisherigen Recherchen blieben jedoch ohne Ergebnis
2. Standardberechtigung ist Frei/Gebucht-Zeit, was auch der künftigen Vorgabe entspricht. Problem dabei ist, dass ich dann jedoch keine Verbindung zum Kalender bekomme. Erst wenn ich via Shell z.B. Reviewer Rechte vergebe, ist Kalender überhaupt sichtbar. Stelle ich wieder auf Berechtigung Frei/Gebucht-Zeit für einen Benutzer zurück, erscheint bei dem Kalender ein Ausrufezeiche mit dem Zusatz: "Keine Verbindung"

Umgebung ist ein SBS2011.

Viele Grüße

Content-Key: 306426

Url: https://administrator.de/contentid/306426

Printed on: April 18, 2024 at 18:04 o'clock

Member: Lukkes
Lukkes Jun 07, 2016 updated at 14:52:12 (UTC)
Goto Top
Hallo,

ich hatte mal fast dasselbe Problem bei uns. Wir wollten damals gerne für alle Mitarbeiter dieselben Berechtigungen einstellen. Ich habe das mit folgendem Skript gelöst bekommen, wobei hier nichts bestehendes gelöscht wird:


$mailboxes = Get-Mailbox -Database "XXX"  
$AccessRights = "Reviewer"  

foreach ($mailbox in $mailboxes) {

$calendar = (($mailbox.SamAccountName)+ ":\" + (Get-MailboxFolderStatistics -Identity $mailbox.SamAccountName -FolderScope Calendar | Select-Object -First 1).Name)  

if (((Get-MailboxFolderPermission $calendar  | Where-Object {$_.User -like "Standard"}).AccessRights) -like "AvailabilityOnly" ) {      

    $mbType = (Get-Mailbox $mailbox.SamAccountName| Select-Object -First 1).RecipientTypeDetails

    if (  $mbType -match "UserMailbox" )  
       {
       Write-Host "Updating calendar permission for $mailbox..." -ForegroundColor Yellow               
       Set-MailboxFolderPermission -User "Standard" -AccessRights $AccessRights -Identity $calendar  
        }
    }
}

Da müsstest du noch die betreffende Mailbox auswählen. Hoffe ich kann dir damit helfen und das funktioniert!

P.S.: Ich weiß leider auch nicht ob das mit dem Frei/Gebucht funktioniert, da wir ausschließlich über Reviewer arbeiten.

Gruß
Member: colinardo
Solution colinardo Jun 07, 2016 updated at 17:25:18 (UTC)
Goto Top
Hallo Type02,
das folgende setzt die Standardberechtigungen aller UserMailboxen(keine Sharedmailboxes etc.) zurück und entfernt jegliche zusätzlichen Rechte (Das wird die Leute freuen, wenn plötzlich Ihre Rechte weg sind :-P)

Skript auszuführen in der EMS
# -----------------------------------------------------------
# Kalenderrechte aller Usermailboxen auf Default zurücksetzen
# -----------------------------------------------------------
(Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited) | %{
    $box = $_
    $calname = [string](Get-mailboxfolderstatistics $box -folderscope calendar).Name
    $folder = "$($box.alias):\$calname"  
    write-host "Setze Standardberechtigungen auf Mailbox: $($box.PrimarySmtpAddress)" -F Green  
    
    $permissions = Get-MailboxFolderPermission $folder

    # Alle zusätzlichen Rechte außer den Standardberechtigungen entfernen
    ($permissions | ?{$_.User.UserType -notmatch '^(Default|Anonymous)$'}) | %{  
        Remove-MailboxFolderPermission $folder -User $_.User -Confirm:$false
    }
    # Die Standardrechte auf Default setzen
    if (!($permissions | ?{$_.User.UserType -eq 'Default'})){  
        Add-MailboxFolderPermission $folder -User Default -AccessRights AvailabilityOnly | out-null
    }else{
        Set-MailboxFolderPermission $folder -user Default -AccessRights AvailabilityOnly -WarningAction SilentlyContinue -EA SilentlyContinue
    }
    if (!($permissions | ?{$_.User.UserType -eq 'Anonymous'})){  
        Add-MailboxFolderPermission $folder -User Anonymous -AccessRights None | out-null
    }else{
        Set-MailboxFolderPermission $folder -user Anonymous -AccessRights None -WarningAction SilentlyContinue -EA SilentlyContinue
    }
} 
Ein Backup sollte natürlich bei einer solchen Aktion immer vorhanden sein, und die User informieren nicht vergessen, sonst steht das Telefon bald nicht mehr still face-wink.

Grüße Uwe
Member: Type02
Type02 Jun 20, 2016 at 10:06:46 (UTC)
Goto Top
Hallo,

danke für eure Antworten/Bemühungen, war bis heute im Urlaub. Werd mir die Scripten bei Gelegenheit mal zu Gemüte führen.

Schöne Woche noch!