Important
Problème connu pour l’agent d’infrastructure v1.73.0 et versions ultérieures : l’installation silencieuse MSI (/qn) échouera avec l’erreur 1603 si des paramètres de configuration obligatoires sont manquants, ou sur des systèmes avec des restrictions strictes de stratégie de groupe Windows.
Problème
- L'installation a fonctionné avec la v1.72.x mais échoue avec la v1.73.0 ou une version ultérieure
- L’installation silencieuse MSI se termine avec l’erreur 1603
- Se produit sur les systèmes Windows durcis ou conformes à la norme CIS
- Le service
newrelic-infran’est pas créé
Cause
À partir de la version v1.73.0, le programme d’installation Windows MSI utilise des actions personnalisées PowerShell différées pour valider et générer automatiquement le fichier de configuration de l’agent pendant la phase d’installation.
Cette erreur est généralement déclenchée par l’une des deux causes suivantes :
- Paramètres d’installation obligatoires manquants (le plus courant) : lors de l’utilisation du commutateur
/qn(silencieux), le script d’action personnalisée du programme d’installation échouera immédiatement et annulera l’installation (erreur 1603) si vous ne transmettez pas explicitementGENERATE_CONFIG=trueetLICENSE_KEY=YOUR_LICENSE_KEYcomme arguments de ligne de commande. - Restrictions de stratégie de groupe Windows : sur les systèmes Windows renforcés ou conformes à la norme CIS, le paramètre de stratégie de groupe
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\DisableMSI(lorsqu’il est défini sur1ou2) bloque l’exécution de ces actions personnalisées PowerShell différées, entraînant une erreur 1603.
Solution
Étape 1 : assurez-vous que les paramètres obligatoires sont transmis (solution principale)
Si vous effectuez une installation silencieuse, vous devez fournir les paramètres de configuration obligatoires directement dans la ligne de commande msiexec.exe.
Assurez-vous d’exécuter l’installation en utilisant la syntaxe incluant les paramètres suivante :
msiexec.exe /qn /i PATH\TO\newrelic-infra.msi GENERATE_CONFIG=true LICENSE_KEY=YOUR_LICENSE_KEYNote
Le programme d’installation nécessite ces paramètres pour terminer avec succès la boucle d’installation silencieuse. Si vous souhaitez gérer ou écraser le fichier newrelic-infra.yml après l’installation via des outils de gestion de configuration externes, vous devez tout de même transmettre ces paramètres pour permettre à MSI de se terminer avec succès.
Étape 2 : désactiver temporairement la restriction MSI (pour les systèmes renforcés)
Si l’installation échoue toujours avec l’erreur 1603 même après avoir transmis les paramètres obligatoires à l’étape 1, la politique de sécurité de votre système d’exploitation bloque probablement les actions personnalisées du programme d’installation.
Exécutez le script suivant pour désactiver temporairement la restriction DisableMSI pendant l’installation et la restaurer immédiatement après :
# Store original value$regPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Installer"$origValue = (Get-ItemProperty -Path $regPath -Name DisableMSI -ErrorAction SilentlyContinue).DisableMSI
try { # Temporarily allow MSI custom actions if (-not (Test-Path $regPath)) { New-Item -Path $regPath -Force | Out-Null } Set-ItemProperty -Path $regPath -Name DisableMSI -Value 0 -Type DWord -Force # Run the installation with mandatory parameters msiexec.exe /qn /i PATH\TO\newrelic-infra.msi GENERATE_CONFIG=true LICENSE_KEY=YOUR_LICENSE_KEY } finally { # Restore original value if ($null -ne $origValue) { Set-ItemProperty -Path $regPath -Name DisableMSI -Value $origValue -Type DWord -Force } else { Remove-ItemProperty -Path $regPath -Name DisableMSI -ErrorAction SilentlyContinue }}Vous pouvez utiliser ce script PowerShell pour vérifier au préalable si la politique DisableMSI existe et est susceptible de causer des problèmes :
$regPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Installer"$disableMsi = (Get-ItemProperty -Path $regPath -Name DisableMSI -ErrorAction SilentlyContinue).DisableMSI
if ($null -eq $disableMsi -or $disableMsi -eq 0) { Write-Host "DisableMSI not set or set to 0 - Installation should work if mandatory parameters are supplied."} else { Write-Host "WARNING: DisableMSI is set to $disableMsi - Installation will likely fail with error 1603 due to OS security policy." Write-Host "Use the Step 2 workaround script above to install successfully."}