此脚本用于获取远程计算机上已安装软件的版本。有什么方法可以让我在结果中显示计算机名称吗?请检查屏幕截图。
$pcname1 = 'TestServer1','TestServer2','TestServer3' Get-WmiObject -Class Win32_Product -ComputerName $pcname1 | where name -eq 'VMware Tools' | select Name,Version
k2arahey1#
无论是 * obsolete * Get-WmiObject cmdlet还是它的后继命令Get-CimInstance [1],只要使用-ComputerName参数,就会向其输出对象添加.PSComputerName属性。因此:
Get-WmiObject
Get-CimInstance
-ComputerName
.PSComputerName
$pcnames = 'TestServer1','TestServer2','TestServer3' Get-CimInstance -Class Win32_Product -ComputerName $pcnames | Where-Object Name -eq 'VMware Tools' | Select-Object Name, Version, PSComputerName
[1]CIM cmdlet(例如,Get-CimInstance)取代了WMI cmdlet(例如,PowerShell v3中的Get-WmiObject)(发布于2012年9月)。因此,应避免使用WMI cmdlet,尤其是因为PowerShell(核心)v6+,所有未来的努力将去,甚至没有他们了。请注意,WMI仍然是 * 基础 * CIM cmdlet,但是。有关更多信息,参见this answer。
1条答案
按热度按时间k2arahey1#
无论是 * obsolete *
Get-WmiObject
cmdlet还是它的后继命令Get-CimInstance
[1],只要使用-ComputerName
参数,就会向其输出对象添加.PSComputerName
属性。因此:
[1]CIM cmdlet(例如,
Get-CimInstance
)取代了WMI cmdlet(例如,PowerShell v3中的Get-WmiObject
)(发布于2012年9月)。因此,应避免使用WMI cmdlet,尤其是因为PowerShell(核心)v6+,所有未来的努力将去,甚至没有他们了。请注意,WMI仍然是 * 基础 * CIM cmdlet,但是。有关更多信息,参见this answer。