Vous installez Exchange Server 2019 CU14 et « Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF » renvoie “An unknown command‑line option was specified” ? Voici un guide complet pour comprendre, diagnostiquer et corriger le problème sans perdre de temps.
Problème et contexte
Lors d’une installation d’Exchange Server 2019 CU14 sur Windows Server 2019, vous lancez la commande :
Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
Au lieu de démarrer l’assistant, Setup s’arrête immédiatement avec le message en anglais :
An unknown command-line option […] was specified.
Ce symptôme est typique d’un exécutable Setup non conforme à la version de CU attendue ou d’une syntaxe altérée par des caractères spéciaux invisibles.
Pourquoi cette erreur se produit-elle ?
Depuis Exchange 2019 CU11, l’acceptation de licence se fait avec des commutateurs explicitant l’opt‑in/opt‑out de la télémétrie : /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
ou ...OFF
. Un Setup.exe plus ancien ne reconnaît pas ces indicateurs et rejette la ligne de commande.
Cause probable | Symptômes typiques | Explications | Comment confirmer |
---|---|---|---|
Setup d’une version antérieure à CU11 | Erreur immédiate « unknown command‑line option », l’aide Setup /? ne mentionne pas DiagnosticDataON/OFF. | Avant CU11, le binaire n’implémente pas les nouveaux commutateurs d’acceptation de licence. | Exécuter .\Setup.exe /? et lire la section « License Terms ». Si les commutateurs ON/OFF n’apparaissent pas, ce n’est pas un Setup CU11+. |
Plusieurs copies du support | La commande exécutée provient d’un ancien dossier (ex. C:\ExchangeSetup ) au lieu de l’ISO CU14 monté. | Le PATH ou l’emplacement courant pointe vers un exécutable obsolète resté sur disque ou sur un partage. | Vérifier le chemin réel résolu par PowerShell : Get-Command .\Setup.exe | fl Path . Ou en CMD : where setup.exe . |
Erreur de syntaxe / caractère caché | Copier‑coller depuis le Web introduit un tiret long « — », une apostrophe « ’ », ou un espace insécable. | Setup lit strictement les arguments ASCII ; un caractère non standard corrompt l’option et la rend « inconnue ». | Taper manuellement la commande, changer la page de code de la console (chcp 437 ), ou coller dans le Bloc‑notes en mode texte brut puis recoller. |
Rappel : les commutateurs de licence à utiliser avec CU14
Pour CU14 (build ≥ 15.2.1544.x
), les commutateurs valides sont :
/IAcceptExchangeServerLicenseTerms_DiagnosticDataON
/IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
Tout autre libellé (par exemple l’ancien /IAcceptExchangeServerLicenseTerms
sans suffixe) ou une casse approximative ne fonctionnera pas.
Solutions et bonnes pratiques
Vérifier la version du binaire Setup
Lancez l’aide et confirmez la présence explicite des commutateurs ON/OFF :
.\Setup.exe /?
Si l’aide n’affiche pas _DiagnosticDataON/OFF, vous n’êtes pas sur un Setup CU11+.
Montez le média officiel d’Exchange 2019 CU14 et travaillez directement depuis sa racine.
S’assurer d’appeler le bon exécutable (pas un ancien)
- Exécuter depuis la lettre du lecteur monté (ex.
E:\Setup.exe
) plutôt qu’un dossier copié. - Contrôler la résolution du chemin en PowerShell :
Get-Command .\Setup.exe | Format-List Path, Version
- Rechercher d’éventuels doublons en CMD :
where /r C:\ setup.exe
Contrôler la syntaxe exacte
- Un seul espace entre
Setup.exe
et le paramètre. - Ne pas utiliser de tirets longs, de guillemets « intelligents » ni de cédilles dans la commande.
- Si vous suspectez des caractères hors ASCII :
chcp 437 REM Retaper la commande à la main dans cette console
Utiliser l’interface graphique en cas de doute
L’installation en mode GUI propose clairement les trois choix de licence : envoi des données, sans envoi, ou refus. Lancez simplement Setup.exe
sans arguments pour valider le principe, puis reproduisez en ligne de commande une fois la syntaxe maîtrisée.
Exemples de lignes de commande correctes
REM Installation du rôle Mailbox en mode silencieux
Setup.exe /Mode:Install /Roles:Mailbox /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
REM Mise à niveau (upgrade) d’un serveur existant
Setup.exe /Mode:Upgrade /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
REM Préparation du schéma AD avant la première installation
Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
Après l’installation : (dés)activer la télémétrie
Set-ExchangeServer -Identity <NomServeur> -DataCollectionEnabled:$false
Get-ExchangeServer <NomServeur> | fl Name,DataCollectionEnabled
Procédure de diagnostic pas à pas
- Monter l’ISO CU14 sur le serveur ciblé et noter sa lettre (ex.
E:
). - Ouvrir PowerShell en administrateur, se placer dans la racine du média :
Set-Location E:\
- Vérifier l’aide :
.\Setup.exe /? | more
L’aide doit afficher les commutateurs _DiagnosticDataON/OFF. - Vérifier le fichier réellement lancé :
(Get-Command .\Setup.exe).Path (Get-Item .\Setup.exe).VersionInfo | fl ProductVersion, FileVersion, FileDescription
- Éliminer les doublons hérités :
Get-ChildItem -Path C:\ -Filter Setup.exe -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.FullName -match 'Exchange' } | Select-Object FullName, Length, @{n='Version';e={(Get-Item $_).VersionInfo.FileVersion}}
- Tester la commande avec saisie manuelle (pas de copier‑coller) pour exclure tout caractère parasite.
- Lancer l’installation avec la ligne de commande minimale validée.
Vérifications complémentaires utiles
- Pré‑requis logiciels (incomplets = échec plus loin) :
- .NET Framework 4.8 installé.
- Microsoft Visual C++ 2013 Redistributable (x64).
- Composants Windows requis pour le rôle Mailbox (IIS, etc.).
- URL Rewrite Module pour IIS.
- Préparation Active Directory (première installation dans la forêt) :
- Compte membre de Schema Admins et Enterprise Admins.
- Exécuter
Setup.exe /PrepareSchema
puisSetup.exe /PrepareAD
si nécessaire.
- Rôles Exchange : Mailbox et Edge utilisent le même programme d’installation. Spécifier
/Mode
et/Roles
lorsque vous combinez plusieurs commutateurs.
Scripts et commandes pratiques
Vérifier le média monté et son empreinte
# Lister les volumes montés depuis des images ISO
Get-Volume | Where-Object DriveType -eq 'CD-ROM' | Select DriveLetter, FileSystemLabel
# Calculer l’empreinte SHA-256 du fichier ISO (si local)
Get-FileHash 'C:\ISO\Exchange2019-x64-CU14.iso' -Algorithm SHA256
Forcer l’exécution depuis le bon chemin
$setup = 'E:\Setup.exe' # Adapter à la lettre du lecteur
$args = '/Mode:Install /Roles:Mailbox /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF'
Start-Process -FilePath $setup -ArgumentList $args -Wait -NoNewWindow
Détecter une incohérence de page de code (caractères spéciaux)
@echo off
echo Page de code actuelle:
chcp
echo Changer temporairement en 437 (US) pour éviter les guillemets “intelligents”
chcp 437
REM Retaper la commande Setup manuellement ici
Analyse des journaux Setup
En cas d’échec, inspectez C:\ExchangeSetupLogs\
. Les fichiers ExchangeSetup.log
et SetupLog_*.log
contiennent les lignes Command Line et Exception utiles pour confirmer la cause « unknown command‑line option ».
[07-15-2024 10:03:22.3456] [0] Executing command line: "E:\Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF"
[07-15-2024 10:03:22.4012] [0] ERROR: An unknown command-line option '/IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF' was specified.
Si la ligne Command Line montre un guillemet « typographique » ou un tiret long, corrigez la saisie.
Checklist rapide (résolution en quelques minutes)
- Monter le média CU14 (build attendu ≥
15.2.1544.x
). - Depuis la racine du média, exécuter :
.\Setup.exe /?
et vérifier _DiagnosticDataON/OFF. - Forcer l’appel de
E:\Setup.exe
plutôt qu’un ancienSetup.exe
dormant sur le disque. - Retaper la commande à la main pour éliminer tout caractère non ASCII.
- Si besoin, passer temporairement la console en page de code 437 (
chcp 437
). - Relancer l’installation avec
/Mode
et/Roles
explicites si pertinent.
FAQ
Q : Je vois /IAcceptExchangeServerLicenseTerms
sans suffixe ON/OFF dans d’anciens scripts. Puis‑je encore l’utiliser ?
R : Non. À partir de CU11, Exchange requiert l’un des deux nouveaux commutateurs avec suffixe DiagnosticData.
Q : L’erreur persiste alors que j’utilise bien l’ISO CU14. Que vérifier d’autre ?
R : Assurez‑vous qu’aucune redirection de commande (alias ou script wrapper) n’injecte des guillemets courbes. Testez une ligne minimale : E:\Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
sans autre paramètre.
Q : La GUI fonctionne, la CLI échoue. Pourquoi ?
R : C’est un indicateur quasi‑certain d’un problème de copier‑coller (caractères invisibles) ou d’un Setup résolu depuis un ancien chemin dans votre session CLI.
Q : Dois‑je ajouter /PrepareSchema
et /PrepareAD
à chaque mise à niveau ?
R : Non, uniquement si le schéma n’a pas encore été préparé pour la version ciblée ou si la documentation de la CU le requiert explicitement.
Q : Les rôles Mailbox et Edge utilisent‑ils des Setup différents ?
R : Non. C’est le même Setup.exe. Vous précisez le rôle avec /Roles:Mailbox
ou l’installez en mode Edge via la configuration dédiée.
Bonnes pratiques d’automatisation
- Verrouiller le chemin du Setup dans vos scripts (
$Setup = Join-Path $env:SystemDrive 'ExchangeCU14\Setup.exe'
) plutôt que d’appeler unSetup.exe
anonyme. - Consigner la ligne de commande exacte avant exécution (journalisation PowerShell) pour faciliter l’analyse en cas de refus de paramètre.
- Vérifier la version du binaire et du schéma AD avant l’upgrade et l’écrire dans un journal d’audit.
- Éviter les pipelines de texte qui peuvent transformer des tirets et guillemets, notamment via des éditeurs qui « typographient » automatiquement.
Exemples de workflows fiables
Installation propre en environnement isolé
- Copier l’ISO CU14 sur un partage de déploiement signé.
- Monter localement l’ISO (pas de montage à distance SMB si la latence est élevée).
- Installer les composants Windows en amont (IIS, etc.).
- Lancer
E:\Setup.exe /Mode:Install /Roles:Mailbox /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
. - Vérifier
Get-ExchangeServer
et la connectivité OWA/EWS.
Mise à niveau contrôlée
- Mettre le serveur en maintenance (drainer les connexions si DAG).
- Vérifier la santé AD, réplication, et l’espace disque.
- Exécuter
Setup.exe /Mode:Upgrade /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
. - Contrôler les journaux
C:\ExchangeSetupLogs
. - Sortir le serveur de maintenance, valider les services et les files d’attente.
Erreurs fréquentes et leur correction
Erreur | Cause | Correction rapide |
---|---|---|
unknown command‑line option | Setup trop ancien ou caractères spéciaux | Exécuter E:\Setup.exe depuis l’ISO CU14, retaper la commande en ASCII |
Échec pendant « Prereq Check » | Composants Windows manquants | Installer les rôles/fonctionnalités requis puis relancer Setup |
Refus de préparer le schéma | Compte sans droits Schema Admins | Utiliser un compte membre de Schema Admins + Enterprise Admins |
Résumé opérationnel
- Le message « unknown command‑line option » apparaît lorsque le binaire Setup ne connaît pas le commutateur
/IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
ou lorsque la chaîne comporte des caractères invalides. - Solution : utiliser impérativement le Setup de l’ISO CU14, vérifier
.\Setup.exe /?
, appeler le bon exécutable et retaper la commande en ASCII. - Après installation, vous pouvez désactiver la collecte via
Set-ExchangeServer -DataCollectionEnabled:$false
. - Ne négligez pas les pré‑requis (IIS, .NET 4.8, VC++ 2013 x64) et les droits AD pour une première installation.
En appliquant ces contrôles (version correcte de Setup, appel depuis l’ISO CU14, syntaxe strictement conforme), l’erreur « unknown command‑line option » disparaît et l’installation d’Exchange Server 2019 CU14 se déroule normalement.