Exchange 2016: DNS-Namen für Zertifikate ermitteln (Quick & Dirty)

Die DNS-Namen der konfigurierten URLs der virtuellen Exchange Verzeichnisse sind für das SSL-Zertifikat relevant. Die entsprechenden DNS-Namen müssen auf dem Zertifikat als SAN (Subject Alternate Name) vorhanden sein.

Dieses kleine Script listet alle konfigurierten DNS-Namen der Exchange 2016 Server auf. Somit lässt sich das Zertifikat entsprechend beantragen und ausstellen.

$AllExchangeServers = Get-ExchangeServer
foreach ($ExchangeServer in $AllExchangeServers)
{
 [array]$CertNames += (Get-ClientAccessService -Identity $ExchangeServer.Name).AutoDiscoverServiceInternalUri.Host
 [array]$CertNames += (Get-OutlookAnywhere -Server $ExchangeServer).Internalhostname.Hostnamestring
 [array]$CertNames += (Get-OutlookAnywhere -Server $ExchangeServer).ExternalHostname.Hostnamestring
 [array]$CertNames += (Get-MapiVirtualDirectory -Server $ExchangeServer).Internalurl.Host
 [array]$CertNames += (Get-MapiVirtualDirectory -Server $ExchangeServer).ExternalUrl.Host
 [array]$CertNames += (Get-OabVirtualDirectory -Server $ExchangeServer).Internalurl.Host
 [array]$CertNames += (Get-OabVirtualDirectory -Server $ExchangeServer).ExternalUrl.Host
 [array]$CertNames += (Get-ActiveSyncVirtualDirectory -Server $ExchangeServer).Internalurl.Host
 [array]$CertNames += (Get-ActiveSyncVirtualDirectory -Server $ExchangeServer).ExternalUrl.Host
 [array]$CertNames += (Get-WebServicesVirtualDirectory -Server $ExchangeServer).Internalurl.Host
 [array]$CertNames += (Get-WebServicesVirtualDirectory -Server $ExchangeServer).ExternalUrl.Host
 [array]$CertNames += (Get-EcpVirtualDirectory -Server $ExchangeServer).Internalurl.Host
 [array]$CertNames += (Get-EcpVirtualDirectory -Server $ExchangeServer).ExternalUrl.Host
 [array]$CertNames += (Get-OwaVirtualDirectory -Server $ExchangeServer).Internalurl.Host
 [array]$CertNames += (Get-OwaVirtualDirectory -Server $ExchangeServer).ExternalUrl.Host
}
$CertNames | select –Unique

Mit kleinen Anpassungen kann das Script auch verwendet werden, um Abweichungen der konfigurierten Hostnamen zu ermitteln.

DNS-Namen

Die Variable $CertNames enthält alle konfigurierten Hostnamen der Exchange Server. Diese DNS-Namen können dann für das Zertifikat verwendet werden.

image-44

4 Replies to “Exchange 2016: DNS-Namen für Zertifikate ermitteln (Quick & Dirty)”

  1. Bei Exchange 2013 erkennt er das CMDlet in Zeile 4 „Get-ClientAccessService“ nicht. Ersetzt man es durch „Get-ClientAccessServer“ läuft alles perfekt :).

    Gruss Martin

  2. Hinter der Klammer-zu sollten diese Zeichen „>>“eigentlich nicht mehr kommen?
    Dann kann er mit dem Edge-server nicht umgehen. Wie kann ich diesen in der Abfrage ausklammern?
    Der Vorgang konnte nicht ausgeführt werden, weil das Objekt ‚Edge-Server‘ nicht auf ‚DC.Domain.internal‘ gefunden wurde.
    + CategoryInfo : NotSpecified: (:) [Get-ClientAccessService], ManagementObjectNotFoundException

    Auf ‚Edge-Server‘ ist nicht die richtige Version oder Serverrolle von Exchange Server installiert, die zur Unterstützung dieses Vorgangs erforderlich ist.
    + CategoryInfo : InvalidOperation: (Edge-Server:ServerIdParameter) [Get-OutlookAnywhere], ServerRoleOperationException
    #LG und Danke

  3. Hi,

    Edge Server kannst du wie folgt ausklammern:

    $AllExchangeServers = Get-ExchangeServer | where {$_.serverrole -notmatch „Edge“}

    Gruß, Frank

  4. Hallo Frank,
    du filterst das Array ab Zeile 4 nicht mehr auf den Namen, ich glaube das ist so nicht beabsichtigt oder?
    (Get-OutlookAnywhere -Server $ExchangeServer).
    müsste doch
    (Get-OutlookAnywhere -Server $ExchangeServer.Name).
    heißen oder?
    (Respektive alle restlichen Zeilen…)

    Gruß
    Christoph

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.