Public Folder Management
Wenn Sie Exchange 2007 installiert haben und erstmals die Management Konsole starten, dann sieht die Struktur erst einmal recht aufgeräumt aus. Allerdings werden Sie keine Stelle finden, an der Sie die öffentlichen Ordnern verwalten können. Nur auf dem Server mit der Mailbox-Rolle können Sie zumindest die Datenbank mit den öffentlichen Ordnern verwalten.
Leider ist die Verwaltung von öffentlichen Ordnern bezüglich der Größen, Replikaten etc. auf Exchange 2007 aktuell nur mit der Exchange Management Shell möglich. Wenn Sie noch einen Exchange 2000/2003 Server in ihrer Organisation haben, dann können Sie mit dem Exchange 2000/2003 System Manager ebenfalls die Ordner über den Exchange 2000/2003 Public Folder Store verwalten. Eine Verbindung vom Exchange 2000/2003 ESM zum Exchange 2007 ist aber nicht möglich.
Verwalten per GUI
Erst ab Exchange 2007 SP1 ist es möglich, auch die öffentlichen Ordner per GUI zu verwalten. In der Toolbox finden Sie den Link zur Verwaltungskonsole der öffentlichen Ordner
Allerdings können Sie über die MMC z.B.: immer noch keine Berechtigungen vergeben. Da bleibt der PowerShell (Siehe weiter unten) vorbehalten.
Speziell auf "nicht englischen" Systemen kann es sein, dass Sie die Verwaltungskonsole gar nicht erst starten können. Hier hat wieder der Übersetzungsteufel derart zugeschlagen, dass die Werte in der Registrierung zwar "eingedeutscht" wurden, aber die Links im Dateisystem natürlich nicht. Also RegEdit aufmachen oder einfach folgende Zeilen als REG-Datei speichern und importieren:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\v8.0\AdminTools\Toolbox\PublicFolderManagementConsole] "Name"="Public Folder Management Console" "Description"="Ermöglicht die Verwaltung von öffentlichen Ordnern von Exchange." "CommandFile"="\"bin\\Public Folder Management Console.msc\"" "CommandParameters"="\"bin\\Public Folder Management Console.msc\""
Und schon können Sie auch bei einer deutschen Installation die Ordner wieder verwalten.
Seit Exchange 2010 SP1 kann ein Administrator sogar wieder auf der GUI die Clientberechtigungen verwalten:
Allerdings muss man auch hier wieder im Hauptfenster sich in der mittleren Spalte befinden und nicht links im Baumdiagramm und die Einstellungen wirken nur auf den Ordner, d.h. können nicht weiter "vererbt" werden. Das geht dann alles wieder per PowerShell.
Verwaltung per PowerShell
Für die Verwaltung stehen eine ganze Gruppe von Befehlen bereit:
- Get-PublicFolder / Set-PublicFolder / New-PublicFolder / Remove-PublicFolder
Liest die Einstellungen des angegeben Ordners aus (Replikate, Grenzen etc.) - Get-PublicFolderAdministrativePermission / Add-PublicFolderAdministrativePermission
/ Remove-PublicFolderAdministrativePermission
Verwaltet Administrative Berechtigungen auf dem Ordner (d.h. wer darf z.B. die Liste der Replikate verändern) - Get-PublicFolderClientPermission / Add-PublicFolderClientPermission
/ Remove-PublicFolderClientPermission
Steuerung der Clientrechte. Dies kann ein Administrator aber auch über Outlook machen - Get-PublicFolderDatabase / Set-PublicFolderDatabase / New-PublicFolderDatabase
/ Remove-PublicFolderDatabase
Steuerung der eigentlichen Datenbank. Vieles hiervon ist aber auch über die Exchange Management Console erreichbar - Get-PublicFolderStatistics
Zeigt Statistische Informationen zu Ordnerinhalten an. - Update-PublicFolder / Update-PublicFolderHierarchy
Stößt eine erneute Replikation von Ordnern und der Hierarchie an.
Von all diesen Programmen sind erst einmal die CMDlets zu "PublicFolder" und "get-PublicFolderStatistics" interessant.
Beispiele
Fangen wir zuerst einmal mit ein paar Beispielen an, die "nur lesend" arbeiten. Wir gehen dazu auf den Exchange 2007 Server, auf dem auch die Exchange Management Shell vorhanden und gestartet ist.
Ein einfaches "Get-PublicFolder" zeigt nur, dass es einen "IPM_SUBTREE" gibt:
Natürlich unterstützt Exchange 2007 auch noch die "versteckten" Systemordner, in denen z.B. die Frei/Belegt-Zeiten oder Offline Adressbücher für Outlook 2003 und ältere Clients liegen. Diese muss man aber explizit mit dem Pfad angeben, damit diese auch von den CMDLets bearbeitet werden.
Durch die Angabe von "-recurse" wird die komplette Struktur durchlaufen und mit "fl parentpath,name" auch angezeigt
Damit wissen Wir schon sehr viel für die nächsten Aktionen. Natürlich funktioniert dies auch mit der sichtbaren Ordnerstruktur "IPM_SUBTREE" ohne direkte anzeigen. Ein einfaches "Get-PublicFolder -Recurse | ft parentpath,name" reicht hier schon.
Interessant wird es nun, wenn Sie zum Ordner weitere Details anzeigen lassen. Mit "get-publicfolder | get-member" bekommt man neben den Methoden (haben ich ausgeblendet) auch die Properties, welche Sie ausgeben aber auch verändern können
[PS] C:\>get-publicfolder | get-member -MemberType "Property" | ft name Name ---- AgeLimit EntryId HasSubFolders HiddenFromAddressListsEnabled Identity IsValid LocalReplicaAgeLimit MailEnabled MaxItemSize Name OriginatingServer ParentPath PerUserReadStateEnabled PostStorageQuota Replicas ReplicationSchedule RetainDeletedItemsFor StorageQuota useDatabaseAgeDefaults useDatabaseQuotaDefaults useDatabaseReplicationSchedule useDatabaseRetentionDefaults
Um also eine Liste der öffentlichen Ordnern mit den Grenzwerten zu erhalten ist folgende Zeile sinnvoll:
get-publicfolder ` -recurse ` | ft name, *quota* -AutoSize
Gar nicht so schwer oder ?. Der nächste Schritt ist dann natürlich das ändern solcher Wert über "Set-PublicFolder". Aufgrund der vielen möglichen Änderungen erspare ich mir hier die Beschreibung einzelner Spezialfälle. Die BPOS Hilfe liefert sehr viel Anschauungsmaterial hierzu. Zwei Beispiele will ich als Muster vorgeben;
Set-PublicFolder ` -Identity \Testordner ` -MaxItemSize 10MB ` -Replicas {SRV01\PF1, SRV02\PF2}
Get-PublicFolder ` -Identity "\NON_IPM_SUBTREE\OFFLINE ADDRESS BOOK" ` -recurse ` | Set-PublicFolder ` -Replicas SRV01
Das erste Beispiel setzt einfach für einen vorgegebenen Ordner die maximale Größe der Elemente und die Replikate während das zweite Beispiel aufzeigt, wie man über eine Verkettung (PIPE) erst mit "Get-PublicFolder" den Ordner "Offline Address Book" samt Unterordner erhält und dann auf einen Rutsch auf einen anderen Server verschiebt.
Wenn Sie die Ordner nicht über Outlook anlegen und löschen, dann können Sie auch mit "New-PublicFolder" und "Remove-PublicFolder" arbeiten.
Statistische Auswertungen mit Get-PublicFolderStatistics
Der zweite interessante Befehl ist natürlich "Get-PublicFolderStatistics", welcher etwas über die Inhalte in den Ordnern sagen kann. Auch hier hilft erst mal "Get-Member" und zu sehen, welche Ausgaben überhaupt verfügbar sind.
Get-PublicFolderStatistics | get-member -MemberType "Property" | ft name
Name ---- AdminDisplayName AssociatedItemCount ContactCount CreationTime DatabaseName DeletedItemCount EntryId ExpiryTime FolderPath IdentitysDeletePending IsValid ItemCount LastAccessTime LastModificationTime Name OriginatingServer OwnerCount ServerName StoragegroupName TotalAssociatedItemSize TotalDeltedItemSize TotalItemSize
Wir knnen die Ausgaben von Get-PublicFolderStatistics mit "where" filtern und mit "format-table" ausgeben. Hier ein Beispiel
Get-PublicFolderStatistics | where {$_.TotalItemSize -ge 100MB} | ft folderpath, name, TotalItemSize -AutoSize FolderPath Name TotalItemSize ---------- ---- ------------- FaxEingang FaxEingang 602254327B Adressen\Anrufbeantworter Anrufbeantworter 153660804B FaxEingang\Faxwerbung Faxwerbung 996314393B Support Support 323526972B
Damit filtern wir die Anzeige nach allen Ordnern, die mehr als 100 Megabyte Inhalte haben. Natürlich können Sie dies noch mit einer Sortierung versehen oder nach dem Pfad gruppieren. Spielen Sie einfach etwas mit der PowerShell und den Cmdlets herum.
Berechtigungen
Über die Befehle Get-PublicFolderClientPermission / Add-PublicFolderClientPermission / Remove-PublicFolderClientPermission können Sie auch die MAPI-Berechtigungen per Skript auf dem Server setzen, ohne mit Outlook arbeiten zu müssen. Hier am Beispiel zum addieren eines Benutzers:
Add-PublicFolderClientPermission -Identity "\order\unterordner" -User frank -AccessRights CreateItems -Server SRV01"
Wer natürlich viele Ordner zu verarzten hat, wird auch diesen Befehl über eine PIPE verketten:
Get-PublicFolder "ordnerpfad" -recurse | Add-PublicFolderClientPermission -User frank -AccessRights CreateItems -Server SRV01"
Siehe dazu auch: Report-PFPermissions
Replikation anstoßen
Mit den Exchange Cmdlets ist es aber auch möglich, die Inhalte eines Ordners gezielt noch einmal zu replizieren. Je neuer die Exchange Version ist, desto weniger Replikationsmails werden übertragen. Das kann bei einer Migration dann dazu führen, dass eine Mail mal verloren geht und die Server sehr langen brauchen, bis Sie dies merken. mit den beiden Cmdlets kann man die Replikation von Ordnern und der Hierarchie erneut anstoßen.
Update-PublicFolder -Identity \Testordner -Server SRV01 Update-PublicFolderHierarchy -Server SRV01
Bei diesen Befehlen wird SRV01 als Quellserver für die Replikation genutzt. Natürlich können Sie über eine Verkettung mit "get-Publicfolder" auch mehrere Ordner mit "Update-PublicFolder" anstoßen.
Denken Sie dabei aber an das Mailvolumen. Sollte die Replikation wirklich einmal unterbrochen worden sein, dann müssen Sie zuerst die Ursache finden. In einem Mailsystem in dem Nachrichten "verloren" gehen, liegt meist ein Konfigurationsfehler vor, der erst gelöst werden muss
PS1-Skripte von Microsoft
Für viele Standardaufgaben liefert Microsoft schon einige vorgefertigte Skripte mit. Sie finden diese meist in:
C:\Program Files\Microsoft\Exchange Server\Scripts
Hier ein Blick in das Verzeichnis eines Exchange 2007 Servers
Die Namen geben schon ausreichend Hinweise aus den Einsatzbereich der Skripte. So können Sie mit "AddreplicaToPFRecursive" eine neue PF-Datenbank als Replikat eines Servers addieren. Auch das Ersetzen von alten Benutzerrechten durch neue Berechtigungen ist gerade bei Migrationen sehr hilfreich.
öffentliche Ordner mit "angehängtem Leerzeichen"
Kaum zu sehen und oft ein Problem beim Zugriff per OWA oder WebDav: öffentliche Ordner, an deren Namen ein Leerzeichen am Ende steht. Dies sollten Sie korrigieren. Mit Exchange 2007 können Sie mit einem PowerShell-Aufruf diese Ordner auflisten:
Get-PublicFolder -recurse | where {$_.name.endswith(' ')} | export-csv -path folder.csv
Ein etwas längeres Skript habe ich auf "Find Exchange 2007 Public Folders with trailing spaces " http://visualbasicscript.com/m_61934/tm.htm) gefunden. was aber im wesentlichen das Gleiche tut.
Weitere Links
- Modern Public Folder Rechte
- PowerShell
- Öffentliche Ordner
- Report-PFPermissions
- Alternativen
- Berechtigungen
- Hierarchie
- Eigenschaften
- PFCompare
-
E2K7: Managing PublicFolder:
http://blogs.technet.com/b/exchange/archive/2006/12/03/431747.aspx -
Administration of Public Folders with the introduction of Exchange 2007
http://blogs.technet.com/b/exchange/archive/2007/06/25/445429.aspx -
Exchange 2007 mail-enabled public folder transport
http://blogs.technet.com/b/exchange/archive/2007/04/16/437830.aspx -
Public Folders Get a New Pad in Exchange Server 2007 SP1
http://technet.microsoft.com/en-us/library/bb851487(EXCHG.80).aspx