另一种方法是使用Invoke-Command
where 它会自动将结果与PSComputerName
列一起扩展
首先构建脚本块以用作查询
块 1 是我对 x32 和 x64 实现的方法。考虑将此作为替代方案,因为我对提议的实施有一些问题。
$block1={
# Query x64 bit applications
$queryPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
Get-ItemProperty $queryPath | Select-Object -Property DisplayName, Publisher, InstallDate, DisplayVersion
# Query x32 bit applications
$queryPath="HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
Get-ItemProperty $queryPath | Select-Object -Property DisplayName, Publisher, InstallDate, DisplayVersion
}
第 2 块是关于这个问题的建议方法
$block2={
Get-CimInstance Win32_Product | Select-Object Name,Version,PackageName,Installdate,Vendor
}
或者在服务器列表$block1
上$block2
远程执行
Invoke-Command -ComputerName $computernames -ScriptBlock $block1
一个记录看起来像这样
DisplayName : Microsoft Visual C++ 2013 x86 Additional Runtime - 12.0.21005
Publisher : Microsoft Corporation
InstallDate : 20161202
DisplayVersion : 12.0.21005
PSComputerName : MECDEVAPP01
RunspaceId : 4b8cc747-da25-4c6e-b108-0ca3138c0335