【发布时间】:2011-04-06 11:00:28
【问题描述】:
我需要帮助才能连接到运行 Windows XP 的 2 台远程计算机并检索软件版本和安装日期的详细信息。 我是 WMI 的新手,如果有人能指导我正确的方向,我将不胜感激。
目前,我在机器上手动执行以下命令。 wmic 产品,其中 "Vendor like '%xyz%'" 获取名称、版本
【问题讨论】:
标签: powershell wmi wmi-query wmi-service
我需要帮助才能连接到运行 Windows XP 的 2 台远程计算机并检索软件版本和安装日期的详细信息。 我是 WMI 的新手,如果有人能指导我正确的方向,我将不胜感激。
目前,我在机器上手动执行以下命令。 wmic 产品,其中 "Vendor like '%xyz%'" 获取名称、版本
【问题讨论】:
标签: powershell wmi wmi-query wmi-service
我会给你一个用 PowerShell 编写的非常简单的版本。
Get-WmiObject -Class Win32_Product | Select Version,InstallDate | Export-Csv -Path C:\Scripts\Software.csv
简单!
【讨论】:
要使用 WMI 列出本地或远程计算机中已安装的软件,您必须使用 Win32_Product wmi 类。
检查this vbscript 示例
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
如果您需要使用来自 C#、Vb Net 或 Delphi 等其他语言的 wmi 类,您可以使用WMI Code Creator 或WMI Delphi Code Creator 等工具来帮助您构建 WQL 语句。
【讨论】:
C:\scripts 文件夹中创建一个名为software.tsv 的文件,该文件夹必须存在。无论如何,您可以使用我推荐的工具来查看如何访问此 wmi 类的另一个示例。