在研究如何查看计算机的 Windows 更新检查状态时,我发现了以下代码:
$UpdateSession = New-Object -ComObject Microsoft.Update.Session
$UpdateSearcher = $UpdateSession.CreateupdateSearcher()
$Updates = @($UpdateSearcher.Search("IsHidden=0 and IsInstalled=0").Updates)
$Updates | Select-Object Title
这段代码不能满足我的需求,但我觉得它可能足够强大。我摆脱了Select-Object Title
限制,退货有很多属性,Type
这引起了我的兴趣,因为我希望这Type
可以区分驱动程序更新、第三方更新(如 Microsoft Silverlight)和真正的“Windows 更新”,但无论如何我很难找到更多信息,但我找不到任何东西。
我"Microsoft.Updates.Session"
在 google 和 MSDN 上搜索过,我找不到任何真正告诉我它可用的属性以及枚举的含义的来源(例如 Type=1 与 Type=2)。
是否有我应该搜索的 PowerShell 对象参考,或者当我需要时如何查找有关 PowerShell 对象的更多信息?
首先,该类型
[Microsoft.Update.Session]
并不是真正的内置 Powershell 对象,而是Windows 更新代理 (WUA) API的一部分。因此,它没有任何内置的帮助文件或 powershell 可以向您展示的示例,但可以在 Microsoft 网站上搜索。链接的 MS doc 有一些很好的例子,说明如何使用 api 通过 windows update 做不同的事情,它大部分可以直接转换为在 Powershell 中使用。
我以前碰巧用过这个,所以这里有一些powershell的基础知识:
至于搜索特定更新,您需要将过滤器添加到
$UpdateSearcher.
Search()方法中。例如,看起来这可以有 type='Software' 或 type='Driver' 。请注意,WUA API 有一个错误/功能,通常要求它在计算机上本地运行而不是远程启动,但您可以通过创建运行脚本的计划任务来解决此问题。
最后,实际回答您的问题 - 作为一般规则,
Get-Member $MyObject
它将Get-Help $MyCommand
帮助您发现大多数内置的 Powershell 功能。最简单的是使用
Get-Member
cmdlet,例如:在这种情况下,它很可能是一个 COM 对象,但它仍应向您显示方法和属性