如何使用C#检查WUA是否设置为“自动安装更新(推荐)?”

时间:2012-03-07 10:49:24

标签: c# .net visual-studio

我们有一台运行6天作业的服务器只是重置,因为Windows Update代理(WUA)会自动重启机器以安装更新。

我想改变我的C#应用​​程序以警告用户将来是否启用此设置,因此我们最终不会遭受随机重启,这会导致重启所述6天工作,浪费4天CPU时间。

有没有人知道是否可以在WUA内检查“重要更新”是否设置为“在C#中自动安装更新(推荐)”?

1 个答案:

答案 0 :(得分:1)

Windows Update代理(WUA)有一个API,其一般用途描述于:

Install Windows Update Using C#

这是C#代码:

// See http://techforum4u.com/entry.php/11-Install-Windows-Update-Using-C
var auc = new WUApiLib.AutomaticUpdatesClass();
if (auc.Settings.NotificationLevel ==
       AutomaticUpdatesNotificationLevel.aunlScheduledInstallation)
{
    Console.Write("{0}Warning W20120307-1107. Windows Update Agent (WUA) is capable of rebooting the PC automatically. Recommend switching this off for the duration of this 6-day batch process.\n", NPrefix());
}

添加c:\WINDOWS\system32\wuapi.dll后,如果出现编译错误,请参阅Interop type cannot be embedded

请注意,此方法仅适用于Windows 7,在其周围添加try / catch以防止Windows XP崩溃。请参阅论坛,了解如何使其在XP上运行(您必须参考WUA版本1,用于Windows 7的WUA版本为2)。