问题标签 [wuapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2014 浏览

c# - WUApiLib IUpdateInstaller2 产生错误;一些操作系统更新安装其他人抛出 HResult -2145124318

更新是从本地服务器下载的,而不是从 WUS 或 Microsoft 存储库下载的。本地服务器基于 Linux,每个更新的内容都基于哪个主机。

我不使用UpdateDownloader从 Microsoft 服务器下载,我手动下载更新内容,然后使用CopyToCache.

这些安装得很好

Windows XP、Server 2003、Vista、Server 2008 x86 上的 Microsoft .NET Framework 3.5 SP1 安全更新 (KB2736416)

Microsoft Visual Studio 2010 安全更新 (KB2542054)

这些没有

XP、Server 2003、Vista、Windows 7、Server 2008 x86 上的 Microsoft .NET Framework 4 安全更新 (KB2840628)

Windows XP、Server 2003、Vista 和 Server 2008 x86 上的 Microsoft .NET Framework 3.5 SP1 更新 (KB2836940)

我的流程如何运作

我从本地服务器收到此安装信息,我用它来下载更新的所有下载内容。(KB2840628上方的块引用文本是下面提供的示例)

话虽如此,问题是某些更新安装得非常好,但某些更新(我相信有多个更新bundle-updates)没有通过,这让我发疯!

我首先下载每个Uri,然后将它们加载到更新中CopyToCache

在此之后,返回的集合通过我的WindowsUpdateInstaller方法传递,如下所示:

如果我手动双击可执行文件并在不使用代码的情况下手动安装,则更新安装得很好。

0 投票
2 回答
909 浏览

com - 微软补丁下载地址

我正在制作自己的项目,我将在其中搜索 Microsoft 更新,但不会使用WUA API. 我将WUA API仅用于检测和获取各个补丁的属性。

为了使上述场景工作,通过ISearchResult我可以得到更新界面。从那里有一个属性DownloadContent将为我提供IUpdateDownloadContentCollection接口,我将通过该接口获取IUpdateDownloadContent接口,最后我可以获得指定补丁的下载 URL。

最初的DownloadUrl属性IUpdateDownloadContent无法提供任何 url。后来我发现downloadUrl它只适用于 的补丁type ='Driver',而不适用于“软件类型”。

我通过互联网搜索但没有运气:(。

我不想使用 COM API 进行下载和安装的原因是因为我看到每当我们使用WUA API下载或安装时,进程“trustedinstaller.exe”开始运行并占用大部分系统资源并减慢速度。

有人可以告诉我为什么我无法收到DownloadUrl类型 =“软件”的补丁/更新。

0 投票
2 回答
543 浏览

vb.net - Windows 更新 - 想要使用 Online 而不是 WSUS

我正在尝试调整此代码,使其强制 Windows 更新搜索从 Microsoft 而不是本地 WSUS 服务器在线检查。如果我在公司网络之外运行此代码,它可以正常工作,但我想从公司网络运行并绕过 WSUS 服务器。

0 投票
1 回答
1286 浏览

c# - C# - 使用 wuapi.dll 而不将其嵌入到项目中

我正在尝试创建一个程序,允许静默安装 Windows 的重要更新。我希望它是单个 .exe 文件,没有任何其他文件、库、图标等。我使用的是 .Net 3.5。我将 wuapi.dll 包含到我的项目的 References 文件夹中。编译后 wuapi.dll 被复制到同一个文件夹,其中包含 .exe 文件(调试或发布)。

我已经阅读了有关使用 ILMerge 将 .dll 文件直接嵌入到 .exe 文件中的不同文章。这是我的问题 - 所有 Windows 计算机在 system32 或 SysWow64 文件夹中都有 wuapi.dll,那么我为什么要将它嵌入到我的项目中呢?有没有办法引用这些库或使用它们的功能而不将它们添加到项目中?

0 投票
1 回答
248 浏览

vb.net - 完成安装更新后,fVB.NET Windows 更新崩溃

在极少数情况下,我的程序在完成安装更新后会崩溃。它只是给了我一个:“ProgramName 已停止响应”错误并崩溃。我知道它一定是我的 Windows 更新安装的安装方法中的某个地方,但我无法弄清楚错误是什么或在哪里。

也许对 WUAPI.dll 有更多了解的人可以帮助我?

该程序是从 U 盘运行的,有时我可以通过将程序移动到桌面,然后从那里运行它来“解决”问题,但我想避免这样做。而且 AFAIK,我的代码实际上都没有访问 USB 棒或在更新安装过程中需要访问 USB 棒上的程序。当然,我可能只是缺少一些非常基本的东西..

可能还值得注意的是,我在表格关闭和表格关闭事件期间有以下内容

和:

以为我有一些错误输出,不幸的是毕竟不是。它与别的东西有关。

编辑:

全局捕获代码:

编辑:

我已经追踪了可能是主要问题。

该程序是从 U 盘运行的,如果该 U 盘在程序完成之前被移除,无论出于何种原因,它都会尝试到达应用程序启动的位置(U 盘),然后它会失败,和崩溃。

所以看来我必须让程序自行复制,然后从计算机上的某个位置运行。然而,奇怪的是,它并不总是一个问题。但是在运行 Windows 8.1 的虚拟机上,我几乎每次都观察到它。

我想我会多玩一点,因为我非常希望在程序启动并运行后能够移除 USB 记忆棒。让我困惑为什么它必须能够访问 .exe 才能完成向上?

0 投票
0 回答
184 浏览

ruby - 我应该如何使用 WIN32OLE 实现 IDownloadProgressChangedCallback?

我想在 Ruby 中使用WIN32OLE下载 Windows 更新。我遇到了知道要使用哪个 COM 对象来获取IUpdateDownloader::BeginDownload所需的参数的问题。目前,我可以执行同步版本的下载更新,但我真的很想知道如何使用异步方法。

像下面这样的东西现在有效:

但是,我不想调用“Download()”,而是使用“BeginDownload()”。如何实例化IDownloadProgressChangedCallback(例如)。我认为这样做在 C# 中可能很明显,但是使用 WIN32OLE,我不确定如何创建对象。

0 投票
0 回答
211 浏览

c++ - 有没有办法使用 C++ 和 WUA 隐藏特定的 Windows 更新

使用 Windows 更新代理 API,是否有隐藏更新的方法?我浏览了文档,但我还没有看到任何东西。有人使用 VB 完成了它,但我需要使用 C++。

编辑:这是我找到的 VB 脚本的链接:https ://serverfault.com/questions/145843/block-specific-windows-update-hotfix

0 投票
0 回答
122 浏览

c# - 如何捕捉 Windows 更新事件?

我找到了很多关于如何使用和使用 WUAPI 的指南,以便使用我自己的程序下载和安装更新。但我一直想知道 - 有没有办法使用默认的 Windows 更新应用程序?

例如,我通过默认的 Windows Update 应用程序启动了重要和非重要更新的安装,并且在安装它们时我想捕捉事件并显示某种消息框,例如重要和非重要更新的数量。有没有办法实现它?

谢谢!

0 投票
1 回答
1081 浏览

c# - 使用 Windows 更新代理 API 检查 WSUS 服务器

我正在尝试确定 WSUS 是否使用 Windows 更新代理 API 管理当前计算机。目前,我的代码查看向 Windows 更新代理注册的所有服务。

问题是我不知道检查名称是否可靠。我看到 IUpdateService 对象上有一个服务 id 字段,它是一个 guid。我测试了几个盒子,似乎总是3da21691-e39d-4da6-8a4b-b43877bcb1b7。

如何可靠地检查 WSUS?

0 投票
1 回答
227 浏览

c++ - IUpdateSearcher 性能问题

我正在使用IUpdateSessionIUpdateSearcher试图获取 Windows 系统的可用更新列表。

当您有单个(或少量)更新时,这非常有用。在有 109 个可用更新的新机器上进行测试时,处理->Search()调用需要10 多分钟

这是正常行为,还是可以采取一些措施来提高性能?

提前感谢您的帮助。也欢迎其他实现可用更新列表的解决方案。