我需要使用单个集合来定位win7(x86)和win7(x64)版本以检查Outlook.exe是否安装在程序文件下,但问题出在Win7(x86)下安装目录位于“C”下:\ Program Files \“和Win7(x64)安装目录位于”C:\ Program Files(x86)\“下,因此无法使用一个集合
我在Win7(x86)下面使用的脚本目标,但不是Win7(x64) 有人可以帮助WMI查询我可以同时针对Win7(x86)和(x64)来检查是否已安装Outlook.exe
“SELECT SMS_R_SYSTEM.Client,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.ResourceID,SMS_G_System_SoftwareFile.FilePath,SMS_G_System_SoftwareFile.FileName,SMS_G_System_SoftwareFile.FileVersion FROM SMS_R_SYSTEM INNER JOIN SMS_G_System_SoftwareFile ON SMS_G_System_SoftwareFile.ResourceId = SMS_R_System.ResourceId WHERE SMS_G_System_SoftwareFile.FilePath LIKE“%程序文件\ Microsoft Office \ Office14 \“和SMS_G_System_SoftwareFile.FileName =”WINWORD.EXE“和SMS_G_System_SoftwareFile.FileVersion LIKE”14。%“
答案 0 :(得分:0)
你快到了,试试这个:
SELECT
SMS_R_SYSTEM.Client , SMS_R_SYSTEM.Name, SMS_R_SYSTEM.ResourceID,
SMS_G_System_SoftwareFile.FilePath, SMS_G_System_SoftwareFile.FileName,
SMS_G_System_SoftwareFile.FileVersion FROM SMS_R_System
INNER JOIN SMS_G_System_SoftwareFile ON
SMS_G_System_SoftwareFile.ResourceId = SMS_R_System.ResourceId
WHERE
(
SMS_G_System_SoftwareFile.FilePath LIKE "%Program Files\Microsoft Office\Office14\"
OR
SMS_G_System_SoftwareFile.FilePath LIKE "%Program Files (x86)\Microsoft Office\Office14\"
) AND SMS_G_System_SoftwareFile.FileName = "outlook.exe"
那将包括两个文件夹。我还用“outlook.exe”替换了你的“WINWORD.EXE”并删除了FileVersion检查,因为我认为如果它位于“Office14”文件夹中就可以安全地假设它是14版。