题 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.


一点点谷歌和我发现这个帖子在 Splunk的社区支持 但我对答案的正确性并不十分自信;然而失败的安装程序步骤   GetInstalledSplunkSettings 所以也许我应该深入挖掘注册表,看看陈旧的Product或Installer密钥是否错误地导致安装程序尝试卸载不存在的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。 Hmmmmm。如果我手动运行安装怎么办?

相同的安装程序,相同的安装参数(从AppEnforce.log中复制并粘贴),从运行方式管理器cmd.exe提示符运行,并且在同一步骤失败并出现相同的错误。如果我返回并再次删除注册表项,并从cmd.exe重新运行安装程序 有用!  大笑?

让我们重新上限:

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


有任何想法吗?我很乐意提供我的ProcMon活动的完整副本或任何其他信息,如果这将有所帮助。


5
2018-03-23 20:05




警告Splunk支持,但最好是你打开一个案例。 - halr9000


答案:


刚听到支持回来了。这是6.2.2中的一个已知问题,并且修补程序已经在即将发布的版本中发布。我不能向您许诺版本号,但您可以查看缺陷编号SPL-95121的发行说明。


5
2018-03-23 21:31



优秀作品!我正在与拥有Splunk实施的安全组合作,以获得支持票。 - kce


当我试图安装Splunk 6.2.2抛出Windows的命令行时,它也发生在我身上。

在使用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错误。

浏览这些注册表项并尝试找到导致问题的那个


0
2018-04-01 13:28