Exchange Server programma di installazione 2019 non viene eseguito come previsto se è stato avviato da PowerShell usando Setup.exe

Sintomi

Considerare lo scenario descritto di seguito:

  • Si prevede di eseguire una configurazione automatica per l'aggiornamento Microsoft Exchange Server 2019, Microsoft Exchange Server 2016 o Microsoft Exchange Server 2013 da PowerShell o dal prompt dei comandi usando Setup.exe
  • Il supporto di configurazione si trova nell'unità D:
  • L'installazione automatica viene avviata da PowerShell o dal prompt dei comandi come "setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" anziché ".\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" (PowerShell) o "D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" (PowerShell o prompt dei comandi).

In questo caso, viene avviato il programma di installazione Exchange Server e potrebbe indicare che è stato completato correttamente. Tuttavia, Exchange stesso non viene aggiornato.

Causa

Quando si esegue un comando in PowerShell o nel prompt dei comandi, i percorsi nella variabile di ambiente di sistema "Path" vengono prima controllati per verificare il comando in esecuzione, prima che il percorso corrente in PowerShell o nel prompt dei comandi sia selezionato, a meno che:

  • "." viene immesso prima del comando o del programma eseguito in PowerShell oppure
  • Il tasto TAB viene usato per aggiungere automaticamente "." davanti al comando o al programma in esecuzione in PowerShell oppure
  • il percorso completo viene usato per eseguire il setup.exe (ad esempio "D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms") in PowerShell o nel prompt dei comandi.

Un file setup.exe che si trova in C:\Program Files\Microsoft\Exchange Server\V15\bin viene trovato ed eseguito da PowerShell, anziché dal setup.exe nel percorso corrente.

Soluzione alternativa

Se si esegue un aggiornamento, usare ".\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" (PowerShell) o "D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms" (PowerShell e prompt dei comandi) per avviare il comando.