Get-WmiObject занимает слишком много времени, чтобы выполнить - PullRequest
0 голосов
/ 25 апреля 2018

Get-WmiObject -Class win32_product -ComputerName $ Компьютер |Where-Object -FilterScript {$ _. Name -match $ ApplicationName}

Это занимает слишком много времени для выполнения примерно от 20 до 30 минут.это работало раньше, это причина из-за любого обновления Windows

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

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.Если вы работаете по всему домену, то для этой операции вы используете права администратора.

Надеюсь, это поможет.

0 голосов
/ 25 апреля 2018

Win32_Product, как известно, очень медленный, потому что он не только перечисляет установленные приложения, но также проверяет / исправляет установки MSI:

Сообщение журнала событий указывает, что установщик Windowsперенастроил все установленные приложения

...