Exchange PS-Skript Kalenderberechtigungen entfernen
Hallo zusammen,
vll. kann mir jemand bei folgenden Skript helfen (ich möchte bei jeder User-Mailbox bei den Kalenderberechtitungen alle Gruppen entfernen welche mit EX-S begrinnen):
$Mailbox = Get-mailbox -OrganizationalUnit "ou=ma,dc=exp,dc=local" -RecipientTypeDetails UserMailbox
$Gruppen = get-adgroup -Filter {name -like "EX-S"}
foreach ($MailboxElement in $Mailbox)
{
foreach ($Gruppe in $Gruppen) {
remove-MailboxFolderPermission -confirm:$fale -identity "$($Mailbox.Name):\Kalender" -User $Gruppe.Name
}
}
$Mailbox und $Gruppen funktioniert hier bekomme ich die korrekten Ergebnisse zurück. Nur die verschachtelte Schleife will noch nicht.
Danke für eure Hilfe
vll. kann mir jemand bei folgenden Skript helfen (ich möchte bei jeder User-Mailbox bei den Kalenderberechtitungen alle Gruppen entfernen welche mit EX-S begrinnen):
$Mailbox = Get-mailbox -OrganizationalUnit "ou=ma,dc=exp,dc=local" -RecipientTypeDetails UserMailbox
$Gruppen = get-adgroup -Filter {name -like "EX-S"}
foreach ($MailboxElement in $Mailbox)
{
foreach ($Gruppe in $Gruppen) {
remove-MailboxFolderPermission -confirm:$fale -identity "$($Mailbox.Name):\Kalender" -User $Gruppe.Name
}
}
$Mailbox und $Gruppen funktioniert hier bekomme ich die korrekten Ergebnisse zurück. Nur die verschachtelte Schleife will noch nicht.
Danke für eure Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 448767
Url: https://administrator.de/contentid/448767
Ausgedruckt am: 25.11.2024 um 01:11 Uhr
8 Kommentare
Neuester Kommentar
Moin.
Da fehlt neben ein paar Rechtschreibfehlern noch so einiges, vor allem das Berücksichtigen des Kalendernamens, denn je nach Locale der Mailbox kann dieser auch z.B. "Calendar" usw. heißen. Und auch das jedes mal alle Gruppen pro Mailbox durchlaufen werden ist ineffektiv und führt zu Fehlern wenn die entsprechende ACL nicht im Ordner vorhanden ist.
Gruß wireguard
Da fehlt neben ein paar Rechtschreibfehlern noch so einiges, vor allem das Berücksichtigen des Kalendernamens, denn je nach Locale der Mailbox kann dieser auch z.B. "Calendar" usw. heißen. Und auch das jedes mal alle Gruppen pro Mailbox durchlaufen werden ist ineffektiv und führt zu Fehlern wenn die entsprechende ACL nicht im Ordner vorhanden ist.
$mailboxes = Get-Mailbox -OrganizationalUnit "ou=ma,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
}
}
Geht hier ohne Probleme, wir kennen hier deine Berechtigungen nicht.
OK, sehe das Problem, ist oben angepasst.
Sorry, aber hier klappts einwandfrei. Du sagst ja nicht ob der "Name" oder der "SamAccountName" der Gruppe gemeint ist...passe den Filter der Berechtigungen oben an deine Situation richtig an dann klappt das auch, 100%. Bisschen musst du schon mitdenken.