Powershell 用于连接到远程计算机并检索软件版本和安装日期的WMI命令

Powershell 用于连接到远程计算机并检索软件版本和安装日期的WMI命令,powershell,wmi,wmi-query,wmi-service,Powershell,Wmi,Wmi Query,Wmi Service,我需要帮助连接到2台运行Windows XP的远程计算机,并检索软件版本和安装日期的详细信息。 我是WMI的新手,如果有人能为我指引正确的方向,我将不胜感激 目前,我在机器上手动执行以下命令。 wmic产品,其中“类似于“%xyz%”的供应商获取名称、版本若要使用WMI列出本地或远程计算机中已安装的软件,必须使用WMI类 检查vbscript示例 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = o

我需要帮助连接到2台运行Windows XP的远程计算机,并检索软件版本和安装日期的详细信息。 我是WMI的新手,如果有人能为我指引正确的方向,我将不胜感激

目前,我在机器上手动执行以下命令。
wmic产品,其中“类似于“%xyz%”的供应商获取名称、版本

若要使用WMI列出本地或远程计算机中已安装的软件,必须使用WMI类

检查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类,您可以使用或之类的工具来帮助您构建WQL语句

要使用WMI列出本地或远程计算机中已安装的软件,必须使用WMI类

检查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类,您可以使用或之类的工具来帮助您构建WQL语句

我将为您提供一个用PowerShell编写的非常简单的版本

Get-WmiObject -Class Win32_Product | Select Version,InstallDate | Export-Csv -Path C:\Scripts\Software.csv

简单

我将为您提供一个用PowerShell编写的非常简单的版本

Get-WmiObject -Class Win32_Product | Select Version,InstallDate | Export-Csv -Path C:\Scripts\Software.csv

简单

嗨,谢谢你的回复。执行脚本时,出现错误“未找到路径”。(我已经在strComputer中指定了计算机名)如果您看到示例代码的第二行,这将在
C:\scripts
文件夹中创建名为
software.tsv
的文件,此文件夹必须存在。无论如何,你可以使用我推荐的工具来查看如何访问这个wmi类的其他示例。您好,感谢您的回复。执行脚本时,出现错误“未找到路径”。(我已经在strComputer中指定了计算机名)如果您看到示例代码的第二行,这将在
C:\scripts
文件夹中创建名为
software.tsv
的文件,此文件夹必须存在。无论如何,您可以使用我推荐的工具来查看如何访问此wmi类的其他示例。