我正在尝试使用其产品代码访问应用程序版本。我们可以使用 -
来实现(Get-ItemProperty -path 'HKLM:SOFTWAREMicrosoftWindowsCurrentVersionUninstall{EC542D5D-B608-4145-12F7-749C02B23494}').displayversion
其中EC542D5D-B608-4145-12F7-749C02B23494是产品代码。但是我必须将其写为WMI查询(SCCM所需)。SCUP不接受此查询。其他机制几乎没有其他机制,但是在获取版本方面没有任何作用。例子 - 1. PatchMYPC的目录使用"路径"属性,但就我而言,我需要从注册表中获取。因此
<bar:FileExists Path="7-Zip7zFM.exe" Csidl="38" />
<bar:FileVersion Path="7-Zip7zFM.exe" Comparison="LessThan" Version="18.01.0.0" Csidl="38" />
因此,我无法使用注册表(HKLM Unsintall Path)获取版本,该版本也被接受。
。ps win32_product类需要大量时间,因此可以避免。
,因为win32_product通常是避免SCCM引入其自己的类的类:
Win32Reg_AddRemovePrograms
Win32Reg_AddRemovePrograms64
应该可以查询像这样的人之一
select Version from Win32Reg_AddRemovePrograms where ProdID = '{EC542D5D-B608-4145-12F7-749C02B23494}'
SCUP使用wsus XML模式专门使用baseApplicabilityrules架构。您可以选择该页面上记录的任何类型。对于WMI查询,文件详细信息和注册表查询等不同方案,它们具有不同的规则。如果您正在寻找注册表的版本比较,则最佳选择是RegSzToVersion
。根据您的问题,您将使用
<bar:RegSzToVersion Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall{EC542D5D-B608-4145-12F7-749C02B23494}" Value="DisplayVersion" RegType32="false" Comparison="LessThan" Data="1.0.0.0" />
比较可以是以下任何值
- Lessthan
- LessThanorequalto
- 等于
- 大塔诺尔塔尔托
- 大塔
regtype32 是,默认情况下是false,因此如果选择,则可以将其排除在外。如果注册表密钥与32位输入相关联,请使用" WOW6432Node"路径将其归因于True或硬码。
data 属性是要与之比较的目标版本号(以标准的四部分版本编号格式)。