我遇到了这个问题。
我必须列出 Windows 操作系统(x86 和 x64)上所有已安装的程序,包括 Internet Explorer 和其他 Windows 组件。
我尝试了一些解决方案:
"SELECT * FROM Win32_Product"
,但结果没有Internet Explorer,并且在x64上,它没有列出所有程序。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
在 x86 上,但未列出 IE。 总结,我需要列出 x86 和 x64 操作系统上所有已安装的程序和 Windows 组件(如 IE)。
谁能帮我?
非常感谢。
最佳答案
试试这个 WMI 查询脚本,看看它是否也缺少您的 x64 内容。如果没有,则在 x64 命令 shell 下重试。我怀疑您正在以 32 位模式执行程序:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile("c:\scripts\software.tsv", True)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("SELECT * FROM Win32_Product")
objTextFile.WriteLine "Caption" & vbtab & _
"Description" & vbtab & "Identifying Number" & vbtab & _
"Install Date" & vbtab & "Install Location" & vbtab & _
"Install State" & vbtab & "Name" & vbtab & _
"Package Cache" & vbtab & "SKU Number" & vbtab & "Vendor" & vbtab _
& "Version"
For Each objSoftware in colSoftware
objTextFile.WriteLine objSoftware.Caption & vbtab & _
objSoftware.Description & vbtab & _
objSoftware.IdentifyingNumber & vbtab & _
objSoftware.InstallLocation & vbtab & _
objSoftware.InstallState & vbtab & _
objSoftware.Name & vbtab & _
objSoftware.PackageCache & vbtab & _
objSoftware.SKUNumber & vbtab & _
objSoftware.Vendor & vbtab & _
objSoftware.Version
Next
objTextFile.Close
来源:
Enumerating Installed Software
关于x86 - 使用 C++ 列出 Windows 上所有已安装的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15997929/