重要
infrastructureエージェント v1.73.0以降の既知の問題: 必須の設定パラメーターが欠落している場合、または厳格なWindowsグループポリシーの制限があるシステムでは、サイレントMSIインストレーション(/qn)がエラー1603で失敗します。
問題
- v1.72.xではインストレーションに成功しましたが、v1.73.0以降では失敗します
- MSIサイレントインストレーションがエラー1603で終了します。
- 堅牢化された、またはCISに準拠したWindowsシステムで発生します
- サービス
newrelic-infraが作成されません
原因
バージョンv1.73.0以降、Windows MSIインストーラは遅延PowerShellカスタムアクションを使用して、インストレーションフェーズ中にエージェントの設定ファイルを自動的に検証および生成します。
このエラーは通常、次の2つの原因のいずれかによって引き起こされます:
- 必須のインストレーションパラメーターの欠落(最も一般的):
/qn(サイレント)スイッチを使用する場合、GENERATE_CONFIG=trueおよびLICENSE_KEY=YOUR_LICENSE_KEYをコマンドライン引数として明示的に渡さないと、インストーラのカスタムアクションスクリプトは直ちに失敗し、インストレーションをロールバックします(エラー1603)。 - Windowsグループポリシーの制限: 堅牢化された、またはCISに準拠したWindowsシステムでは、グループポリシー設定
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\DisableMSI(1または2に設定されている場合)がこれらの遅延PowerShellカスタムアクションの実行をブロックし、1603エラーが発生します。
解決
ステップ1:必須パラメーターが渡されていることを確認する(主な解決策)
サイレントインストレーションを実行する場合は、必須の設定パラメーターをmsiexec.exeコマンドラインで直接指定する必要があります。
次のパラメーターを含む構文を使用してインストレーションを実行していることを確認してください:
msiexec.exe /qn /i PATH\TO\newrelic-infra.msi GENERATE_CONFIG=true LICENSE_KEY=YOUR_LICENSE_KEY注記
インストーラがサイレントインストレーションループを正常に完了するには、これらのパラメーターが必要です。インストレーション後に外部の設定管理ツールを使用してnewrelic-infra.ymlファイルを管理または上書きする場合でも、MSIを正常に完了させるためにこれらのパラメーターを渡す必要があります。
ステップ2:MSIの制限を一時的に無効にする(堅牢化されたシステム向け)
ステップ1で必須パラメーターを渡してもインストレーションがエラー1603で失敗する場合は、OSのセキュリティポリシーがインストーラのカスタムアクションをブロックしている可能性があります。
次のスクリプトを実行して、インストレーション中にDisableMSIの制限を一時的に無効にし、その後すぐに元に戻します:
# 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 }}このPowerShellスクリプトを使用して、DisableMSIポリシーが存在し、問題を引き起こす可能性があるかどうかを事前に確認できます:
$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."}