Другой подход заключается в использовании столбца 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
person
Alex Sarafian
schedule
28.09.2017
Systemname
, это класс Win32_Product: msdn.microsoft.com/en-us/library/aa394378(v=vs.85). aspx - person Mike 'Pomax' Kamermans   schedule 27.09.2017