Bei uns gab es die Anforderung, die Größe eines Öffentlichen Ordners zu bestimmen. Kein Problem eigentlich, gibt es doch folgenden Befehl:

[PS] C:\Windows\system32>Get-PublicFolder "\[Ordnername]" | Get-PublicFolderStatistics | Select TotalItemSize

Doch weit gefehlt, dieser Befehl gibt nur die Größe der direkt darin befindlichen Dateien zurück. Größen von Unterordner bzw. der darin befindlichen Dateien werden nicht berücksichtigt. Abhilfe schafft hier folgender Befehl:

[PS] C:\Windows\system32>Get-PublicFolder "\[Ordnername]" -Recurse | Get-PublicFolderStatistics | Measure TotalItemSize -sum

Oder etwas freundlicher fürs Auge:

[PS] C:\Windows\system32>Get-PublicFolder "\[Ordnername]" -Recurse | Get-PublicFolderStatistics | Measure TotalItemSize -sum | Select @{N='Anzahl der Items'; E={$_.Count}}, @{N='Speicher in Byte'; E={$_.Sum}} | fl

Bitte beachten Sie, dass es eine Weile dauern kann, bis der Befehl durchgeführt wurde.

Da wir diese Anforderung erst auf dem Tisch liegen hatten, bastelten wir uns folgende „OneLiner“, die wir gerne mit euch teilen.

Liste aller Mailbox-Aliase:

Get-Mailbox -OrganizationalUnit "[DN der OU]" | Select -Expand EmailAddresses Alias | Select SmtpAddress, Alias

Liste aller Gruppen-Aliase:

get-distributiongroup -OrganizationalUnit "[DN der OU]" | Select -Expand EmailAddresses Alias | Select SmtpAddress, Alias

Oftmals müssen noch nachträglich Rechte auf öffentliche Ordner vergeben werden. Ist dieser jedoch zu dem Zeitpunkt schon gut gefüllt, so kommt es vor, dass die Rechtevergabe über das Exchange Control Panel (ECP) mit einer OutOfMemory-Exception fehlschlägt. Umgehen können wir dieses Problem durch die Nutzung der Exchange-eigenen PowerShell-Scripts:

  1. Als erstes öffnen wir eine neue Instanz der Exchange Management Shell (EMS). Alternativ können wir auch eine PowerShell-Konsole verwenden, müssen hier aber erst über den Befehl „Add-PSSnapin Microsoft.Exchange.Management.Powershell.Snapin“ den Exchange-Befehlssatz laden, da dieser in den offiziellen Scripts nicht nochmal extra importiert wird.
  2. In der Shell wechseln wir nun die Working-Directory über cd und begeben uns somit in den Script-Ordner:
    cd „C:\Program Files\Microsoft\Exchange Server\V15\Scripts“
    Der Ordner „V15“ muss durch die entsprechend verwendete Exchange Version ersetzt werden.
  3. Nun führen wir folgenden Befehl aus:
    .\AddUsersToPFRecursive.ps1 -TopPublicFolder „\[Ordner-Pfad]“ -User „[UPN des Users]“ -Permission „[Rechtebezeichnung]“
    Bsp.: .\AddUsersToPFRecursive.ps1 -TopPublicFolder „\technet“ -User „mmustermann@c4y.biz“ -Permission „Owner“
  4. Nach einer kurzen Wartezeit werden nacheinander sämtliche Ordner aufgelistet und die Rechtevergabe auf selbige bestätigt.

Das war’s schon!