dpole86
Goto Top

Kalenderberechtigung für alle User und alle Kalender Automatisch setzen per shell

Guten Morgen Zusammen


Ich habe bei einem Kunden die Aufgabe, das ich immer wieder die Kalenderberechtigungen anpassen muss und zwar für alle.

Ich würde dies gern durch eine Liste verwirklichen wo die Powershell die Benutzer einließt und die Kalender aus dem Exchange postfach zieht.

Bisher habe ich folgende Befehle immer manuel eingetragen:

add-mailboxFolderPermission -identity KalenderNutzer@domain.de:\Kalender -user Zugreifender@domain.de -AccessRights owner 
remove-mailboxFolderPermission -identity KalenderNutzer@domain.de:\Kalender -user Zugreifender@domain.de
Get-MailboxFolderPermission -Identity KalenderNutzer@domain.de:\Kalender

Mit diesem Befehl, läsche ich die Berechtigung auf alle Kalender für einen Benutzer
Get-Mailbox | ForEach-Object {remove-MailboxFolderPermission $_":\Kalender" -User Christian.Müller }    
Mit diesem Befehl gebe ich dem Benutzer Frank.Müller auf alle Kalender im Exchange Author-Rechte
Get-Mailbox | ForEach-Object {Add-MailboxFolderPermission $_":\Kalender" -User Frank.Müller -AccessRights Author }    
Mit diesem Befehl, sehe ich, welcher Benutzer auf Welchen Kalender Zugriff hat (allerdings steht bei Kalender nur "Kalender"
Get-Mailbox | ForEach-Object {Get-MailboxFolderPermission $_":\Kalender" -User Anja.Müller }    

Kann mir da jemand helfen?

Content-ID: 320533

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

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

131381
131381 10.11.2016 aktualisiert um 14:18:10 Uhr
Goto Top
SeaStorm
SeaStorm 10.11.2016 um 14:34:08 Uhr
Goto Top
Hi

die Lösung wurde ja schon gepostet. Mich interessiert hier, was der Sinn des ganzen ist?
Das alle Zugriff aufeinander haben, damit man sehen kann, wer wann was macht?

Ich vermute stark, das ihr euch mal mit Gruppenkalendern auseinandersetzen solltet?!
Dpole86
Dpole86 10.11.2016 um 15:31:03 Uhr
Goto Top

Das ist aber nicht die Lösung die ich gern hätte... Hier wird die lösung clientseitig berschrieben... ich brauch sie aber Serverseitig
131381
131381 10.11.2016 aktualisiert um 16:47:26 Uhr
Goto Top
Zitat von @Dpole86:
Das ist aber nicht die Lösung die ich gern hätte... Hier wird die lösung clientseitig berschrieben... ich brauch sie aber Serverseitig
ABSOLUT FALSCH, du hast den Beitrag nicht komplett gelesen, das erste Script von @colinardo beschreibt das SERVERSEITIG!! Nur das zweite von Ihm beschreibt das clientseitige Einbinden des Kalenders in Outlook!
Das nächste mal bitte richtig lesen face-sad
colinardo
colinardo 10.11.2016 aktualisiert um 16:51:37 Uhr
Goto Top
Zitat von @131381:
Zitat von @Dpole86:
Das ist aber nicht die Lösung die ich gern hätte... Hier wird die lösung clientseitig berschrieben... ich brauch sie aber Serverseitig
ABSOLUT FALSCH, du hast den Beitrag nicht komplett gelesen, das erste Script von @colinardo beschreibt das SERVERSEITIG!! Nur das zweite von Ihm beschreibt das clientseitige Einbinden des Kalenders in Outlook!
Das nächste mal bitte richtig lesen face-sad
Korrekt face-wink Danke @131381, steht alles im Beitrag für die Exchange Shell:
Exchange Einführung - Kalender aller User untereinander freigeben und hinzufügen

Grüße Uwe
Dpole86
Dpole86 10.11.2016 um 17:02:01 Uhr
Goto Top
Zitat von @colinardo:

Zitat von @131381:
Zitat von @Dpole86:
Das ist aber nicht die Lösung die ich gern hätte... Hier wird die lösung clientseitig berschrieben... ich brauch sie aber Serverseitig
ABSOLUT FALSCH, du hast den Beitrag nicht komplett gelesen, das erste Script von @colinardo beschreibt das SERVERSEITIG!! Nur das zweite von Ihm beschreibt das clientseitige Einbinden des Kalenders in Outlook!
Das nächste mal bitte richtig lesen face-sad
Korrekt face-wink Danke @131381, steht alles im Beitrag für die Exchange Shell:
Exchange Einführung - Kalender aller User untereinander freigeben und hinzufügen

Grüße Uwe


Hallo Uwe

Wie immer ein Toller Beitrag und ein Tolles Skript auch Serverseitig aber nicht die Lösung die ich gern bräuchte. Ich hatte ja schon einen Ansatz oben geschrieben wie ich es bisher mache...
nur bekomme ich es nicht hin, dass er mir einfach alle Benutzer nimmt.
Beim löschen ist dies kein Problem aber beim hinzufügen muss ich immer alle User einzeln eingeben.
colinardo
colinardo 10.11.2016 aktualisiert um 17:19:21 Uhr
Goto Top
nur bekomme ich es nicht hin, dass er mir einfach alle Benutzer nimmt.
Kann ich nicht nachvollziehen, macht genau das was du oben nachfragst ... Gibt die Kalender jedes Users untereinander frei. Kannst du dir ja am Script abschauen wie ich es dort mache! Ansonsten musst du konkreter werden, sorry.
Da Script macht dies ja noch zuverlässiger da es den tatsächlichen Kalendernamen des Users ausliest welcher je nach Spracheinstellung der Mailbox mal "Kalender", oder auch "Calendar" oder anders benannte sein kann.

Willst du ein persönlich angepasstes Script mach ich dir das gerne via PM , ist dann aber von meiner Seite her nicht mehr kostenlos.
Dpole86
Dpole86 10.11.2016 um 17:38:47 Uhr
Goto Top
Zitat von @colinardo:

nur bekomme ich es nicht hin, dass er mir einfach alle Benutzer nimmt.
Kann ich nicht nachvollziehen, macht genau das was du oben nachfragst ... Gibt die Kalender jedes Users untereinander frei. Kannst du dir ja am Script abschauen wie ich es dort mache! Ansonsten musst du konkreter werden, sorry.
Da Script macht dies ja noch zuverlässiger da es den tatsächlichen Kalendernamen des Users ausliest welcher je nach Spracheinstellung der Mailbox mal "Kalender", oder auch "Calendar" oder anders benannte sein kann.

Willst du ein persönlich angepasstes Script mach ich dir das gerne via PM , ist dann aber von meiner Seite her nicht mehr kostenlos.

Du machst es ja mit $rights und anschliessend die einzelnen rechte
Ich mach es mit $Userrights und den entsprechend vorgefertigten rechten welche auch im outlook zu finden sind.

Ich habe mir deinen Code angeschaut und glaube, dass nur der unterste Teil interessant ist:

 $rights = "FolderVisible","ReadItems"   
# Maiboxen definieren (hier nur Usermailbox
$mailboxes = Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize unlimited 
$mailboxes | %{ 
    $box = $_ 
    # Kalendername extrahieren (Grund: Diese sind sprachabhängig je nachdem welche Sprache die Mailbox hat) 
    $calname = [string](Get-MailboxfolderStatistics $box -folderscope calendar).Name 
    # Allen mailboxen (außer der eigenen) Zugriffsrechte auf den Kalender vergeben
    $mailboxes.Alias | ?{$_ -ne $box.Alias} | %{Add-MailboxFolderPermission "$($box.alias):\$calname" -AccessRights $rights -User $_ -Confirm:$false}   
Sprache ist beim Kunden alles auf Deutsch weshalb ich mit $_:Kalender arbeite.

also theorethisch gesehen müsste der code dann so aussehen:

 $mailboxes = Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize unlimited 
$mailboxes | %{ 
    $box = $_ 
    
    # Allen mailboxen (außer der eigenen) Zugriffsrechte auf den Kalender vergeben
    $mailboxes.Alias | %{Add-MailboxFolderPermission "$_:\Kalender" -AccessRights Author -Confirm:$false}   

Sorry wenn der code nun schlecht istich versuche nur zu zeigen was ich bräuchte
colinardo
colinardo 10.11.2016 aktualisiert um 17:46:38 Uhr
Goto Top
Zitat von @Dpole86:
Du machst es ja mit $rights und anschliessend die einzelnen rechte
Nein, ich definiere die Rechte welche jeder User auf den Kalender zugewiesen bekommt.
Ich mach es mit $Userrights und den entsprechend vorgefertigten rechten welche auch im outlook zu finden sind.
??? Die gelisteten Rechte sind genau die die du auch im Outlook findest.
also theorethisch gesehen müsste der code dann so aussehen:
Sorry wenn der code nun schlecht istich versuche nur zu zeigen was ich bräuchte
Der untere Code machst nichts anderes als allen Mailboxen außer der gerade aktuell zu bearbeitenden
Siehe Filter
..... | ?{$_ -ne $box.Alias} | ....
die Rechte an dem Kalender der akuellen Mailbox zuzuweisen. Nicht mehr und nicht weniger...
Wäre ja Schwachsinn sich selber auf sich selber Rechte zu geben face-smile

Im Code findest du alles was du brauchst. Du scheinst nur gerade einen Knoten im Hirn zu haben face-wink

Na denn viel Erfolg, ich bin raus. Schreiben ist gerade sehr schlecht (linker Arm geschient.)

Grüße Uwe
131381
131381 17.11.2016 um 11:08:56 Uhr
Goto Top
Thread schließen nicht vergessen.