Get-WmiObject花了太多时间来执行

时间:2018-04-25 07:08:26

标签: powershell powershell-v4.0 powershell-remoting

  

Get-WmiObject -Class win32_product -ComputerName $ Computer | Where-Object -FilterScript {$ _。名称-match $ ApplicationName}

执行大约20到30分钟需要花费太多时间。它工作得更早,是因为任何Windows更新

2 个答案:

答案 0 :(得分:3)

Friday已知非常慢,因为它不仅枚举已安装的应用程序,而且还检查/修复MSI安装:

Event log message indicates that the Windows Installer reconfigured all installed applications

答案 1 :(得分:0)

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-command中传递,否则它会考虑windows登录用户。如果您在域范围内,则使用Admin creds进行此操作。

希望它有所帮助。