none
Auslesen einer OU und setzen der Kalenderberechtigung

    Frage

  • Hallo Zusammen

    Ich habe eine OU in der 186 User drin sind. bei diesen wird gewünscht, dass die Kalenderberechtigung von {AvailabilityOnly} auf {LimitedDetails} gesetzt wird.

    Ich habe dies mal vorbereitet:

    Die displayName sind so aufgebaut: "Vorname Nachname Standort1"

    Get-ADUser -Filter * -Properties displayName | where-object { $_.displayName -like "*Standort1" }

    Das funktioniert einwandfrei

    Nun wollte ich das setzen noch einbauen:

    $a = Get-ADUser -Filter * -Properties displayName | where-object { $_.displayName -like "*Standort1" }

    $a | foreach-object {Set-MailboxFolderPermission -Identity "displayName:\Calendar" -user Default -AccessRights LimitedDetails}

    Leider bin ich mir nicht sicher ob er nun das displayName als Variabel erkennt oder nach diesem User sucht? Wie würdet Ihr dies lösen. bin für Vorschläge offen.

    Danke und Gruss

    pavel



    • Bearbeitet padcos Mittwoch, 13. März 2019 09:51
    Mittwoch, 13. März 2019 09:49

Antworten

  • Hmmm.

    Warum ich diese Zeile eingebaut habe ist damit ich den Namen des Kalenders bekomme. Je nachdem, wie das Postfach konfiguriert wurde, heißt es manchmal Kalender, das andere mal Calendar (oder andere Sprache). Falls alle Kalender einheitliche Sprache habe, kannst Du die Zeile weg lassen (würde ich aber nicht empfehlen).

    Du kannst auch die beiden $Entry.WindowsEmailAddress durch $Entry.Name ersetzen.

    Mittwoch, 13. März 2019 14:01
  • Moin,

    einige Punkte:

    1. Get-Mailbox hat den Parameter -OrganizationalUnit, der die Filterung besorgen sollte
    2. Der Ordnername ist bei Mailboxen, die in deutsch angelegt wurden, Kalender und nicht Calendar. Siehe dazu auch in meinem Blog. Den Namen braucht man hier aber nicht, sondern nur die Identität.

    Kombiniert man beide Erkenntnisse, kommt so etwas raus wie

    foreach ($mbx in Get-Mailbox -OrganizationalUnit "lab.rad.or/LAB") {
    $mbx | Get-MailboxFolderStatistics | where {$_.FolderType -eq 'Calendar'} | Select-Object Name -First 1 | foreach {Set-MailboxFolderPermission -Identity "$($mbx.UserPrincipalName):\$($_.Name)"-User Default -AccessRights LimitedDetails }
    }


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Mittwoch, 13. März 2019 14:25

Alle Antworten

  • Hi Pavel,

    hier ein Vorschlag:

    $UserMailboxes=Get-Mailbox -ResultSize Unlimited | where-object {$_.Name -like "*Standort1"}
    foreach ($Entry in $UserMailboxes) 
    {
        $Calendar = (($Entry.WindowsEmailAddress)+ ":\" + (Get-MailboxFolderStatistics -Identity $Entry.WindowsEmailAddress -FolderScope Calendar | Select-Object -First 1).Name)
        Set-MailboxFolderPermission $Calendar -User Default -AccessRights LimitedDetails
    }
    Gruß,
    Jakša


    Mittwoch, 13. März 2019 10:40
  • Danke

    Ich erhalte diese Meldung:

    Method invocation failed because [Microsoft.Exchange.Data.SmtpAddress] does not contain a method named 'op_Addition'.
    At line:3 char:5
    +     $Calendar = (($Entry.WindowsEmailAddress)+ ":\" + (Get-MailboxFolderStatisti ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (op_Addition:String) [], RuntimeException
        + FullyQualifiedErrorId : MethodNotFound

    Mittwoch, 13. März 2019 11:36
  • Ergänzend:

    der Thread wird auch bei mir behandelt:

    https://www.msxforum.de/community/index.php/Thread/16472-Auslesen-einer-OU-und-setzen-der-Kalenderberechtigung-im-Exchange-2016/?postID=92689#post92690

    Bitte IMMER auf Crosspostings hinweisen, danke!


    Gruß Norbert

    Mittwoch, 13. März 2019 11:38
    Moderator
  • Was bekommst Du als Ergebnis wenn Du folgende Zeile ausführst:

    @(Get-Mailbox -ResultSize Unlimited | where-object {$_.Name -like "*Standort1"}).count

    Bekommst Du die E-Mail Adressen angezeigt wenn Du folgenden Befehl ausführst:

    Get-Mailbox -ResultSize Unlimited | where-object {$_.Name -like "*Standort1"} | ft WindowsEmailAddress


    Mittwoch, 13. März 2019 12:18
  • Die Anzahl Mailboxen wird angezeit

    Die mailadressen nicht

    Mittwoch, 13. März 2019 13:45
  • Hmmm.

    Warum ich diese Zeile eingebaut habe ist damit ich den Namen des Kalenders bekomme. Je nachdem, wie das Postfach konfiguriert wurde, heißt es manchmal Kalender, das andere mal Calendar (oder andere Sprache). Falls alle Kalender einheitliche Sprache habe, kannst Du die Zeile weg lassen (würde ich aber nicht empfehlen).

    Du kannst auch die beiden $Entry.WindowsEmailAddress durch $Entry.Name ersetzen.

    Mittwoch, 13. März 2019 14:01
  • Das hat jetzt einwandfrei funktioniert, besten Dank

    grüsse

    pavel

    Mittwoch, 13. März 2019 14:16
  • gerne :)
    Mittwoch, 13. März 2019 14:20
  • Moin,

    einige Punkte:

    1. Get-Mailbox hat den Parameter -OrganizationalUnit, der die Filterung besorgen sollte
    2. Der Ordnername ist bei Mailboxen, die in deutsch angelegt wurden, Kalender und nicht Calendar. Siehe dazu auch in meinem Blog. Den Namen braucht man hier aber nicht, sondern nur die Identität.

    Kombiniert man beide Erkenntnisse, kommt so etwas raus wie

    foreach ($mbx in Get-Mailbox -OrganizationalUnit "lab.rad.or/LAB") {
    $mbx | Get-MailboxFolderStatistics | where {$_.FolderType -eq 'Calendar'} | Select-Object Name -First 1 | foreach {Set-MailboxFolderPermission -Identity "$($mbx.UserPrincipalName):\$($_.Name)"-User Default -AccessRights LimitedDetails }
    }


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Mittwoch, 13. März 2019 14:25