none
Exchange 2016 Kalenderberechtigungen PowerShell entfernen

    Frage

  • Hallo zusammen,

    vll. kann mir jemand mit folgenden Skript helfen was ich im Internet gefunden habe:

    Ich möchte bei allen User-Mailboxen bei den Kalenderberechtitungen alle Gruppen entfernen welche mit EX-S anfangen (Bsp. EX-S-Abt_A, EX-S-Abt_B)

    $mailboxes = Get-Mailbox -OrganizationalUnit "ou=mitarbeiter,ou=de,dc=exp,dc=local" -RecipientTypeDetails UserMailbox -ResultSize Unlimited

    foreach($mailbox in $mailboxes){
    $folder = "$($mailbox.alias):\$([string](Get-mailboxfolderstatistics $mailbox -folderscope calendar | ?{$_.FolderType -eq 'Calendar'} | select -First 1).Name)"
    (Get-MailboxFolderPermission $folder | ?{$_.Identity.ADRecipient.Name -like 'EX-S*'}) | %{
    Remove-MailboxFolderPermission $folder -User $_.User -Confirm:$false -verbose
    }
    }

    Das Skript läuft zwar ohne Fehler durch, aber die Gruppen sind weiterhin vorhanden :-(

    System: Exchange 2016 onpremise, CU12

    Vielen Dank für eure Hilfe

    Freitag, 10. Mai 2019 14:21

Alle Antworten

  • Moin,

    bitte Code stets als Code formatieren (2. Button von rechts im Editor)! Und bitte auch keine Shorthand verwenden, wenn Du möchtest, dass sich andere gern mit Deinem Code beschäftigen.

    Liefert der Teil 

    Get-MailboxFolderPermission $folder | ?{$_.Identity.ADRecipient.Name -like 'EX-S*'})

    denn überhaupt Ergebnisse?


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Freitag, 10. Mai 2019 14:46
  • Guten Morgen und Danke für deinen Hinweis.

    $mailboxes = Get-Mailbox -OrganizationalUnit "ou=mitarbeiter,ou=de,dc=exp,dc=local" -RecipientTypeDetails UserMailbox -ResultSize Unlimited
    
    foreach($mailbox in $mailboxes){
    $folder = "$($mailbox.alias):\$([string](Get-mailboxfolderstatistics $mailbox -folderscope calendar | ?{$_.FolderType -eq 'Calendar'} | select -First 1).Name)"
    (Get-MailboxFolderPermission $folder | ?{$_.Identity.ADRecipient.Name -like 'EX-S*'}) | %{
    Remove-MailboxFolderPermission $folder -User $_.User -Confirm:$false -verbose
    }
    }

    Ich hatte es auch schon mal mit folgenden Befehl probiert (allerdings bin ich daran gescheitert es hinzubekommen mit der Variable $Gruppen diese letztendlich von den Mailboxen zu entfernen:

    $Mailboxes = Get-mailbox -OrganizationalUnit "ou=mitarbeiter,ou=de,dc=exp,dc=local" -RecipientTypeDetails UserMailbox
    $Gruppen = get-adgroup -Filter {name -like "*EX-S*"}
    
    foreach ($mailbox in $mailboxes) {
    foreach ($gruppe in $gruppen) {
    Get-MailboxfolderPermission "${$mailbox}:\kalender" | Remove-MailboxFolderPermission - User $gruppe.Name -WhatIf
    }
    }

    Danke und VG

    Montag, 13. Mai 2019 07:47
  • Keiner einer Idee? :-( 
    Mittwoch, 15. Mai 2019 09:01
  • Hi,

    hier ein Script um EINE Berechtigung zu entfernen (Variable $UserToRemove befüllen) . Wie Du das erweiterst damit ALLE Berechtigungen entfernt werden, überlasse ich Dir ;)

    $UserMailboxes=Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox
    foreach ($Entry in $UserMailboxes) 
    {
        $Calendar = (($Entry.WindowsEmailAddress)+ ":\" + (Get-MailboxFolderStatistics -Identity $Entry.WindowsEmailAddress -FolderScope Calendar | Select-Object -First 1).Name)
        $UserPermision = Get-MailboxFolderPermission -Identity $Calendar -User $UserToRemove 
        if ($UserPermision)
        {
             $Status="REMOVED"
             remove-MailboxFolderPermission $Calendar -User $UserToRemove -Confirm:$false
        }
        else
        {
            $Status="NOTFOUND"
        }
    
    }


    Mittwoch, 15. Mai 2019 10:16
  • Moin Moin,

    vielen Dank hierfür!

    Schönes WE

    Freitag, 17. Mai 2019 08:22