繁体   English   中英

在长时间运行的过程中禁用Windows Update

[英]Disable Windows Update during long running processes

有时,我必须在一台Windows Server 2012服务器上运行长时间运行的进程。 该过程有时可以运行一周以上。 Windows更新必须重新启动时终止此过程。

我正在寻找一种方法来在其中一个进程正在运行时以编程方式停止Windows Update服务,并在该进程完成后重新启用Windows Update。 (而不只是禁用服务器上的Windows Update)。

对于可能的方法,我有2个想法:

1)使用ServiceController类

2)从我的程序中调用PowerShell命令。

我不确定什么是最佳解决方案。 还是我没有看到更好的选择。

2年前,我必须实现这种功能。

做到这一点的方法是通过Windows注册表。

您必须编辑注册表值。

我确实记得Microsoft文档没有公开所有功能,存在一些错误,并且它们在Windows版本之间进行了一些更改。

*要应用行为,它们会编辑一些值并有时添加/删除一些值(在某些OS上,您还需要重新启动WUA)。

链接 (在自动更新配置段落中)包含有关注册表值的更多信息。

在我用Procmon监视WUA时解决了我在Windows Update代理中遇到的那些问题

这就是我发现大多数问题的方式。

与注册表进行交互:

        using (var hive = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Default))
        using (var key = hive.OpenSubKey(@"put the key there (in most of the operation systems the key is not where microsoft documented)",true))
        {
            //do your logic
        }

我无法提供更多信息,因为这将违反NDA。

提示:完成后,建议您使用API强制WUA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM