Exchange Server 2019-Setup wird nicht wie erwartet ausgeführt, wenn es über PowerShell mit Setup.exe

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie planen, ein unbeaufsichtigtes Setup auszuführen, um Microsoft Exchange Server 2019, Microsoft Exchange Server 2016 oder Microsoft Exchange Server 2013 über PowerShell oder die Eingabeaufforderung mithilfe von Setup.exe
  • Das Setupmedium befindet sich auf Laufwerk D:
  • Die unbeaufsichtigte Installation wird über PowerShell oder die Eingabeaufforderung als "setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" statt ".\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" (PowerShell) oder "D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" (PowerShell oder Eingabeaufforderung) gestartet.

In diesem Fall wird das Exchange Server Setup-Programm gestartet und kann darauf hindeuten, dass es erfolgreich abgeschlossen wurde. Exchange selbst wird jedoch nicht aktualisiert.

Ursache

Wenn Sie einen Befehl in PowerShell oder der Eingabeaufforderung ausführen, werden die Pfade in der Systemumgebungsvariable "Path" zuerst überprüft, um den auszuführenden Befehl zu überprüfen, bevor der aktuelle Pfad in PowerShell oder der Eingabeaufforderung überprüft wird, es sei denn:

  • "." vor dem Befehl oder Programm eingegeben wird, der in PowerShell ausgeführt wird, oder
  • die TAB-TASTE wird verwendet, um automatisch "." vor dem Befehl oder Programm hinzuzufügen, der in PowerShell ausgeführt wird, oder
  • Der vollständige Pfad wird verwendet, um die setup.exe (z. B. "D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms") in PowerShell oder in der Eingabeaufforderung auszuführen.

Eine setup.exe Datei, die sich in C:\Program Files\Microsoft\Exchange Server\V15\bin befindet, wird von PowerShell gefunden und ausgeführt, anstelle der setup.exe im aktuellen Pfad.

Problemumgehung

Wenn Sie ein Upgrade ausführen, verwenden Sie ".\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" (PowerShell) oder "D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" (PowerShell und Eingabeaufforderung), um den Befehl zu starten.