Com 下载Microsoft修补程序的URL
我正在制作自己的项目,我将搜索Microsoft更新,但不会使用Com 下载Microsoft修补程序的URL,com,wuapi,Com,Wuapi,我正在制作自己的项目,我将搜索Microsoft更新,但不会使用WUA API下载/安装。我将使用wuaapi仅用于检测和获取各个补丁的属性 为了使上述场景正常工作,我可以通过ISearchResult获得更新界面。因此,有一个属性DownloadContent将为我提供IUpdateDownloadContentCollection接口,通过该接口我将获得IUpdateDownloadContent接口,最后我可以获得指定补丁的下载URL 最初,IUpdateDownloadContent的D
WUA API
下载/安装。我将使用wuaapi
仅用于检测和获取各个补丁的属性
为了使上述场景正常工作,我可以通过ISearchResult
获得更新界面。因此,有一个属性DownloadContent
将为我提供IUpdateDownloadContentCollection
接口,通过该接口我将获得IUpdateDownloadContent
接口,最后我可以获得指定补丁的下载URL
最初,IUpdateDownloadContent
的DownloadUrl
属性无法提供任何url。后来我发现downloadUrl
仅适用于type='Driver'
的补丁,而不适用于“Software type”
我在网上搜索,但没找到运气
我不想使用COM API进行下载和安装的原因是,我看到每当我们使用WUA API
进行下载或安装时,“trustedinstaller.exe”进程就会开始运行,并占用大部分系统资源,速度会减慢
有人能告诉我为什么我不能收到类型为“软件”的补丁/更新的
DownloadUrl
。在做了这么多研究之后,我终于得到了答案。
要获得
Type=Software
的DownloadUrl
,我们必须使用Iupdate
接口的bundleUpdates
属性,该属性将指向IupdateClassification
,该属性反过来将为我们提供Iupdate
接口,我们可以从DownloadCont>获得DownloadUrl
ent
此伪代码显示如何获取所搜索更新的所有URL
SearchResult = UpdateSearcher.Search("Type='Software'")
FOR EACH (SearchResult.Updates AS Update) {
FOR EACH (Update.BundledUpdates AS BundledUpdate) {
FOR EACH (BundledUpdate.DownloadContents AS DownloadContent) {
DISPLAY DownloadContent.DownloadUrl
}
}
}
这并不是那么简单,因为对于每个更新,
bundleUpdates
是一个可能包含多个捆绑更新的集合,bundleUpdates
中的每个捆绑更新,DownloadContent
也是一个包含多个文件的集合,这些文件具有不同的DownloadUrl
。因此,您需要添加逻辑来确定是什么捆绑并下载您需要的内容。@ajit,@antonio集合名称是DownloadContents
,而不是DownloadContent