Powershell获取安装的程序脚本不会返回计算机名称
问题描述:
我试图从一组远程服务器上获取已安装程序的列表。我能够获取程序名称,但不能返回系统名称。以下是我的脚本。Powershell获取安装的程序脚本不会返回计算机名称
$computerfile = get-content "D:\Users\Admin\Docs\PrimaryServers.txt"
ForEach ($computer in $computerfile) {
Get-WmiObject Win32_Product -ComputerName $computer |
Select-Object SystemName,Name,Version,PackageName,Installdate,Vendor |
Format-Table -AutoSize
}
下面是我的输出
答
首先,-ComputerName
可以通过循环你要增加时间,因为利用数组,其中环将在连续取名字的数组等等computername将是并行的。
其次,最好使用CIM cmdlet代替WMI cmdlet。它们默认情况下通过WSMAN运行,并且更容易使用。
三,Win32_Product强制执行一致性检查,因此读取Uninstall registry keys通常要优越。
最后,SystemName
不是由Get-WMIObject
返回的属性名称。 PSComputerName
是你正在寻找的财产,你可以从它做一个Calculated Property。
$computerfile = get-content "D:\Users\Admin\Docs\PrimaryServers.txt"
Get-CimInstance Win32_Product -ComputerName $Computerfile |
Select-Object @{n=SystemName;e={$_.PSComputerName}},Name,Version,PackageName,Installdate,Vendor |
Format-Table -AutoSize
答
另一种方法是使用Invoke-Command
它会自动与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
你是基于PowerShell文档自己编写的,还是从其他地方复制它?因为第一步是检查API文档以确保你正在做一些可以完成的事情,而那些告诉你没有这样的事情,因为'Systemname'是Win32_Product类:https:// msdn.microsoft。 COM/EN-US /库/ aa394378(v = vs.85)的.aspx –