Set-PFInfo

Wenn sie öffentliche Ordner anlegen, dann können Sie diese ja auch mit einer Mailadresse versehen. Technisch legt Exchange dafür ein AD-Objekt vom Typ "Public Folder" an, so dass dieser auch im Outlook Adressbuch erscheint. An diesem Objekt (Leider nicht in der Exchange 2010 MMC) kann man eine Beschreibung pflegen.

Leider ist dies nur eine Info für den Administrator, denn der Anwender sieht diese Beschreibung nicht, obwohl es im Adressbuch ein passendes Feld gibt.

Wer sich einmal die Details des Ordners in der GAL betrachtet, findet dort auch ein Feld "Anmerkungen". Bei einem Kunden ist dabei aufgefallen, dass bei einigen Ordnern das Feld gepflegt war und bei anderen (meist frisch angelegt) das Feld nicht gefüllt war. Es bietet sich ja an dem Anwender den Sinn und Zweck dieses Ordners zu beschreiben, nur wo können Sie das Feld pflegen.

Eine kurze Suche mit ADSIEDIT bzw. den Windows 2008 Verwaltungstools hat schnell gezeigt, dass es da noch ein Feld "Info" gibt, dessen Inhalt von Exchange und Outlook ausgewertet wird. Anscheinend war die GUI von Exchange 2003 und früher so gestrickt, dass das Feld "Info" gepflegt wurde oder Exchange 2007/2010 ist so ungeschickt und liest das falsche Feld aus. Bei einem Blick in die Exchange 2003 Console sieht man auch hier das Feld zum ändern.

Aber auch diese Beschreibung wieder nicht per ADSIEDIT wieder und wird auch nicht auf dem Client angezeigt. Wie also genau die Beschreibung an die öffentlichen Ordner gekommen ist, kann ich nicht mehr nachvollziehen

Das Wissen um das Feld "Info" sollte ihnen helfen, die Beschreibung der öffentlichen Ordner akkurat zu pflegen.

Feld einfach kopieren

Wenn ein Administrator in Windows 2008 nun bei dem Objekt das Feld "Description" pflegen kann aber für die Exchange Befehle das relevante Feld "Info" nicht mehr verfügbar ist, dann muss ich mir eben einen Weg schaffen, das Feld zu pflegen. Sicher kann ein Administrator einfach die Daten im AD direkt mit ADSIEDIT oder einem anderen selbst geschriebenen Tool pflegen. Wer aber die "Beschreibung" nutzt, weil diese per GUI erreichbar ist, dem ist mit einem Skript geholfen, welches den Inhalt von "Beschreibung" einfach in das Feld "Info" kopiert.

Ein kleines PowerShell-Skript zeigt, wie es gehen kann:

foreach ($folder in (Get-Recipient -RecipientType Publicfolder)) {
    Write-Host "Bearbeite" $folder.name
    [string]$folderdn = "LDAP://" + [string]$folder.DistinguishedName
    $pf = [ADSI]$folderdn
    Write-Host "AD-Objekt" $pf.cn
    Write-Host "Info alt:" $pf.info 
    If ($pf.description -eq $null) {
        Write-host "Ueberspringe, da Beschreibung leer"
    }
    Else {
        Write-host "Setze Beschreibung " $pf.description
        $pf.info = $pf.description
        $pf.CommitChanges()
    }
}

Sie könnten sehr einfach also dieses Skript einfach einmal je Nacht laufen lassen und so die Felder schön aktuell halten. Wer ohne die Exchange PowerShell Commandlets auskommen will, kann das ganze auch als ADSI-basierte Suche ausführen. Das sieht dann wie folgt aus:

foreach ($folder in ((New-Object System.DirectoryServices.DirectorySearcher("Objectclass=PublicFolder")).findall())) {
    Write-Host "Bearbeite" $folder.path
    $pf = [ADSI]$folder.path
    Write-Host "AD-Objekt" $pf.cn
    Write-Host "Info alt:" $pf.info 
    If ($pf.description -eq $null) {
        Write-host "Ueberspringe, da Beschreibung leer"
    }
    Else {
        Write-host "Setze Beschreibung " $pf.description
        $pf.info = $pf.description
        $pf.CommitChanges()
    }
}

Interessant wird das, wenn Sie solch eine Logik an die Änderungen im Active Directory koppeln und aktiv werden lassen.