Exchange Server 2019 Installation: Fehler beim Erstellen des Verzeichnisses PowerShell

Bei der Installation des Exchange Servers 2019 auf Windows Server 2019 kann es zu Fehlern bei der Erstellung des PowerShell-Verzeichnisses kommen. Dieses Verhalten tritt auf, wenn bereits ein fehlerhafter Installationsversuch durchgeführt wurde und nicht alle Informationen aus dem AD und im IIS gelöscht werden konnten. Folgende Fehlermeldung wird protokolliert:

The virtual directory 'PowerShell' already exists under 'Servername.Domain.de/Default Web Site'.

Die komplette Fehlermeldung ist am Ende des Blogeintrags angehängt.

Sollte sich das Problem durch eine saubere Deinstallation des Exchange Servers nicht beheben lassen und Sie keine andere Möglichkeit haben, in einen Zustand vor der Exchange-Installation zu kommen, können Sie die PowerShell-Verzeichnisse und -Einträge, welche die Installation behindern, manuell löschen. 

Löschen des IIS-Verzeichnisses:

  • Öffnen Sie den IIS-Manager (Server Manager -> Tools -> IIS)

  • Navigieren Sie zu <NameDesExchangeServers> -> Sites -> Default Web Site

  • Öffnen Sie die „Content View“ (Reiter am unteren Rand), um auf die Dateiansicht zu gelangen

  • Löschen Sie das Verzeichnis „PowerShell“

Löschen der Einträge aus ADSI:

  • Öffnen Sie ADSI Edit (Server Manager -> Tools -> ADSI Edit)

  • Laden Sie den Naming Context „Configuration“ ins ADSI (Action -> Select a well known Naming Context: „Configuration“

01_Exchange Installation.PNG
  • Navigieren Sie in den folgenden Pfad:

    CN=Configuration,DC=domain,DC=suffix

    CN=Services

    CN=Microsoft Exchange

    CN=[domain]

    CN=Administrative Groups

    CN=Exchange Administrative Groups

    CN=Servers

    CN=[Name des Exchange Servers]

    CN=Protocols

    CN=HTTP

  • Löschen Sie die Einträge CN=Powershell (Default Web Site) und PowerShell (Exchange Back End)

  • Warten Sie die Synchronisation ab.

Registry-Einstellungen löschen:

Machen Sie zunächst ein Backup Ihrer Registry.

Überprüfen Sie anschließend in der Registry des Exchange Servers, ob folgende Schlüssel vorhanden sind und löschen Sie diese gegebenenfalls:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\MailboxRole
Key: "Action"
In diesem Registry-Key ist der Status zur Installation oder Deinstallation des Exchange Servern hinterlegt, der aktuell ausgeführt werden soll.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager
Key:  “PendingFileRenameOperations” 

Dieser Registry-Key verhindert, dass sich geöffnete oder aktuell in Verwendung befindende Dateien löschen oder verschieben lassen. 

Anhang: Vollständige Fehlermeldung

Configuring Microsoft Exchange Server

Organization Preparation COMPLETED

Preparing Setup COMPLETED

Stopping Services COMPLETED

Copying Exchange Files COMPLETED

Language Files COMPLETED

Restoring Services COMPLETED

Language Configuration COMPLETED

Exchange Management Tools COMPLETED

Mailbox role: Transport service 100%

The following error was generated when "$error.Clear();

$feVdirName = "PowerShell (Default Web Site)";

$beVdirName = "PowerShell (Exchange Back End)";

$vdirName = "PowerShell";

$InternalPowerShellUrl="http://" + $RoleFqdnOrName + "/powershell";

$vdir = get-PowerShellVirtualDirectory -ShowMailboxVirtualDirectories -server $RoleFqdnOrName

-DomainController $RoleDomainController | where { $_.Name -eq $beVdirName };

if ($vdir -eq $null) {

new-PowerShellVirtualDirectory $vdirName -Role Mailbox -DomainController $RoleDomainController -BasicAuthentication:$false -WindowsAuthentication:$true -RequireSSL:$true -WebSiteName "Exchange Back End" -Path ($RoleInstallPath + "ClientAccess\PowerShell-Proxy");

} else

{

update-PowerShellVirtualDirectoryVersion -DomainController $RoleDomainController;

}

$vdir2 = get-PowerShellVirtualDirectory -ShowMailboxVirtualDirectories -server $RoleFqdnOrName -DomainController $RoleDomainController | where { $_.Name -eq $feVdirName };

if ($vdir2 -eq $null) {

new-PowerShellVirtualDirectory $vdirName -Role Mailbox -InternalUrl $InternalPowerShellUrl -DomainController $RoleDomainController -BasicAuthentication:$false -WindowsAuthentication:$false -RequireSSL:$false -WebSiteName "Default Web Site" -AppPoolId "MSExchangePowerShellFrontEndAppPool";

} else

{

update-PowerShellVirtualDirectoryVersion -DomainController $RoleDomainController;

}

" was run: "System.ArgumentException:
The virtual directory 'PowerShell' already exists under 'Servername.Domain.de/Default Web Site'.

Parameter name: VirtualDirectoryName at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl) at Microsoft.Exchange.Management.SystemConfigurationTasks.NewExchangeVirtualDirectory`1.InternalValidate() at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()

At Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the <SystemDrive>:\ExchangeSetupLogs folder.

Iris Gerlach