Win32_Product поврежден и может быть заменен путем извлечения его из реестра напрямую, например:
Get-ChildItem HKLM:\SOFTWARE\$_\Microsoft\Windows\CurrentVersion\Uninstall\ | ? {($_.GetValue("DisplayName")) -like "*AappName*"}
ИЛИ если вы хотите использовать его в удаленном сеансе, используя Invoke-Command
, то выможно сделать так:
Invoke-Command -ComputerName Computer1, Computer2 -ScriptBlock {Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | select DisplayName, Publisher, InstallDate }
Примечание: учетные данные также можно передать в команду invoke, иначе она будет считать пользователя входа в Windows.Если вы работаете по всему домену, то для этой операции вы используете права администратора.
Надеюсь, это поможет.