Get-WmiObject -Class win32_product -ComputerName $ Computer | Where-Object -FilterScript {$ _。名称-match $ ApplicationName}
执行大约20到30分钟需要花费太多时间。它工作得更早,是因为任何Windows更新
答案 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进行此操作。
希望它有所帮助。