Splunk UniversalForwarder 失败,显示“DetermineContextForAllProducts 失败,错误代码:0x65b”

Splunk UniversalForwarder 失败,显示“DetermineContextForAllProducts 失败,错误代码:0x65b”

我正尝试使用 MSI 部署类型将 Splunk UniversalForwarder 作为 SCCM 应用程序部署到一小组测试服务器,但遇到了 MSI 安装程序异常混乱的问题。

部署类型本身非常简单。我将 MSI 文件 (splunkforwarder-6.2.1-245427-x64-release.msi) 上传到 SCCM 站点服务器,并让检测方法从 MSI 自动填充。我所做的唯一一件事就是更改安装字符串以包含以下参数:

msiexec.exe /lv splunkinstall.log /i "splunkforwarder-6.2.1-245427-x64-release.msi" AGREETOLICENSE=YES DEPLOYMENT_SERVER="splunkd.security.contoso.com" /quiet /norestart /qn


由于包含了开关,/lv我可以转到 C:\Windows\CCMcache 文件夹并查看安装日志:

GetPreviousSettings:  Error: DetermineContextForAllProducts failed witht: 0x65b.
GetPreviousSettings:  Error 0x80004005: Failed to GetInstalledSplunkSettings.
GetPreviousSettings:  Info: Leave GetPreviousSettings: 0x80004005.
CustomAction GetPreviousSettings returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 14:20:23: GetPreviousSettings. Return value 3.


我通过 Google 搜索找到了这个帖子Splunk 的社区支持但我对答案的正确性不太有信心;然而失败的安装程序步骤 GetInstalledSplunkSettings所以也许我应该仔细检查注册表,看看陈旧的产品或安装程序密钥是否错误地导致安装程序尝试卸载不存在的 UniversalForwarder 实例。

通过结合 ProcMon 并手动搜索注册表,我设法找到了似乎相关的以下键。

HKCR:\Installer\Products\B0271F4D65C5D084FA81634DC56AD4A
HKCR:\Installer\Features\B0271F4D65C5D084FA81634DC56AD4AE
HKCR:\Installer\UpgradeCodes\13631B46466632F4FA2E89CF8E9602DB

HKLM:\SOFTWARE\Classes\Installer\Features\B0271F4D65C5D084FA81634DC56AD4AE
HKLM:\SOFTWARE\Classes\Installer\UpgradeCode\13631B46466632F4FA2E89CF8E9602DB


安装期间的 ProcMon 事件:

10:17:31.8751924 AM MsiExec.exe 7436    RegQueryKey HKLM    SUCCESS Query: HandleTags, HandleTags: 0x0
10:17:31.8752103 AM MsiExec.exe 7436    RegOpenKey  HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\S-1-5-18\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE   NAME NOT FOUND  Desired Access: Read
10:17:31.8752409 AM MsiExec.exe 7436    RegQueryKey HKU SUCCESS Query: HandleTags, HandleTags: 0x0
10:17:31.8752584 AM MsiExec.exe 7436    RegOpenKey  HKU\S-1-5-18\Software\Microsoft\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE REPARSE Desired Access: Read
10:17:31.8752831 AM MsiExec.exe 7436    RegOpenKey  HKU\.DEFAULT\Software\Microsoft\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE NAME NOT FOUND  Desired Access: Read
10:17:31.8753062 AM MsiExec.exe 7436    RegQueryKey HKLM    SUCCESS Query: HandleTags, HandleTags: 0x0
10:17:31.8753230 AM MsiExec.exe 7436    RegOpenKey  HKCR\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE    SUCCESS Desired Access: Read
10:17:31.8753486 AM MsiExec.exe 7436    RegQueryValue   HKCR\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE\ProductName    SUCCESS Type: REG_SZ, Length: 38, Data: UniversalForwarder
10:17:31.8753716 AM MsiExec.exe 7436    RegCloseKey HKCR\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE    SUCCESS 

10:34:31.5741168 AM MsiExec.exe 7560    RegEnumKey  HKCR\Installer\Products SUCCESS Index: 11, Name: B0271F4D65C5D084FA81634DC56AD4AE

10:34:31.5744153 AM MsiExec.exe 7560    RegOpenKey  HKCR\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE    SUCCESS Desired Access: Read
10:34:31.5744407 AM MsiExec.exe 7560    RegQueryValue   HKCR\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE\ProductName    SUCCESS Type: REG_SZ, Length: 38, Data: UniversalForwarder
10:34:31.5744637 AM MsiExec.exe 7560    RegCloseKey HKCR\Installer\Products\B0271F4D65C5D084FA81634DC56AD4AE    SUCCESS 


现在事情变得有趣了!我删除了这些密钥,希望能够成功,然后运行客户端应用程序部署和评估周期,但结果同样令人失望。我仔细检查了这些密钥的 NTFS 权限,发现 SYSTEM 具有完全控制权,这似乎反驳了这个答案表示0x80004005。嗯。如果我手动运行安装会怎么样?

相同的安装程序,相同的安装参数(直接从 AppEnforce.log 中复制并粘贴),从以管理员身份运行 cmd.exe 提示符运行,它会在同一步骤失败并出现相同的错误。如果我返回并再次删除注册表项,然后从 cmd.exe 重新运行安装程序有用! 哈哈,什么?

让我们回顾一下:

  • 如果存在注册表项,则安装程序将在DetermineContextForAllProducts安装步骤中失败,无论是由 SCCM 客户端运行还是我手动运行。
  • 如果我删除注册表项,SCCM 客户端将尝试运行安装程序并在此DetermineContextForAllProducts步骤失败。
  • 如果我删除注册表项并手动运行具有相同参数的相同安装程序从以管理员身份运行 cmd.exe 提示它成功!¯\_(ツ)_/¯
  • 我在两个截然不同的服务器上得到了相同的结果。


有什么想法吗?如果有帮助的话,我很乐意提供我的 ProcMon 事件的完整副本或任何其他信息。

答案1

刚刚收到支持人员的回复。这是 6.2.2 中的一个已知问题,修复已在计划中,将在即将发布的版本中发布。我无法向您保证版本号,但您可以查看缺陷编号 SPL-95121 的发布说明。

答案2

当我尝试通过 Windows 命令行安装 Splunk 6.2.2 时也发生了这种情况。

在对 ProcMon 进行一些研究之后,我发现问题是由于为 Splunk 找到了另一个安装。

它在包含产品代码的以下注册表项中搜索:

HKU\S-1-5-18\Software\Microsoft\Installer\Products
HKCR\Installer\Products
HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\S-1-5-18\Installer\Products
HKU\.DEFAULT\Software\Microsoft\Installer\Products

由于某种原因,它失败并出现您提到的错误,而不是预期的 MSI 错误。

检查这些注册表项并尝试找到导致问题的项

相关内容