有时我必须在我的一台Windows Server 2012服务器上运行长时间运行的进程。这些过程有时可以运行一周以上。必须重新启动时,Windows更新才会终止此进程。
我正在寻找一种以编程方式停止Windows更新服务的方法,同时其中一个进程正在运行,并在该过程完成后重新启用Windows更新。 (而不是仅在服务器上禁用Windows更新)。
我对可能的方法有2个想法:
2)从我的程序中调用PowerShell命令。
我不确定什么是最好的解决方案。或者如果有更好的选择,我没有看到。
答案 0 :(得分:1)
2年前,我不得不实施这样的功能。
这样做的方法是通过Windows注册表。
您必须编辑注册表值。
我确实记得Microsoft文档没有公开所有功能 一些错误,他们改变了Windows版本之间的一些东西。
*要应用行为,他们会编辑一些值,有时会添加/删除一些(在某些操作系统上你还需要重启WUA)。
此link(在自动更新配置段落中)包含有关注册表值的更多信息。
解决我使用Windows更新代理程序时遇到的问题,当我用Procmon
监视WUA时我是如何找到大部分问题的。
与注册表进行交互:
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
强制用水户协会