禁用WLAN客户端的自动Windows更新

我正在寻找一种方法来禁用无线连接到互联网时在Windows 7上的自动Windows更新。

客户端都连接到一个2008 R2域控制器。

做一个快速的谷歌search,我找不到任何东西。

必须有一种方法来完成这个我假设。

有没有人知道一个registry项,或一些组策略破解,将帮助我这样做?

谢谢

也许你可以使用这个快速的黑客,但很简单的C#代码。 我build议把它放到一个自己的“服务”上,这个服务将被部署在目标机器上(例如通过GPO)。

那么代码是什么:它会在“NetworkInformation.NetworkAddressChanged”上创build一个事件处理程序,如果networking接口上的某些内容发生变化(例如,WIFI已被停用,IP地址被更改,笔记本​​电脑被放置在以太网上),则会始终触发事件处理程序。 然后检查是否至less有一个以太网networking接口启动:如果是,请启动“Windows Update”服务 – 如果没有,则停止“Windows Update”服务

namespace WindowsUpdateLANOnly { class Program { static void Main(string[] args) { //NetworkInformation from reference: System.Net.NetworkInformation NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(AddressChangedCallback); Console.WriteLine("Listening for address changes. Press any key to exit."); Console.ReadLine(); } private static void AddressChangedCallback(object sender, EventArgs e) { //handle only events from the ethernet network interface var adapters = NetworkInterface.GetAllNetworkInterfaces().Where(p => p.NetworkInterfaceType == NetworkInterfaceType.Ethernet); //check if we have at least one ethernet network interface online bool isOnLAN = false; foreach (NetworkInterface ethernetNetwork in adapters) { Console.WriteLine(" {0} is {1}", ethernetNetwork.Name, ethernetNetwork.OperationalStatus); if (ethernetNetwork.OperationalStatus == OperationalStatus.Up) { isOnLAN = true; } } //deactivate or activate the windows update service WindowsUpdateService(isOnLAN); } private static void WindowsUpdateService(bool start) { //ServiceController from reference: System.ServiceProcess ServiceController sc = new ServiceController("Windows Update"); Console.WriteLine("Try to {0} the windows update service", start?"Activate":"Deactivate"); if (start) //should start { if(sc.Status.Equals(ServiceControllerStatus.Stopped) || sc.Status.Equals(ServiceControllerStatus.StopPending)) { sc.Start(); //var timeout = new TimeSpan(0, 0, 5); // 5 seconds //sc.WaitForStatus(ServiceControllerStatus.Running, timeout); Console.WriteLine("Windows update service started"); } } else //should stop { if (sc.Status.Equals(ServiceControllerStatus.Running) || sc.Status.Equals(ServiceControllerStatus.StartPending)) { sc.Stop(); //var timeout = new TimeSpan(0, 0, 5); // 5 seconds //sc.WaitForStatus(ServiceControllerStatus.Stopped, timeout); Console.WriteLine("Windows update service stopped"); } } } } } 

你怎么看?

不知道它的效率如何,但是您可以正确运行一个脚本,并通过WLAN适配器检查networking连接(网卡已启用,已经拉出IP地址),然后停止Windows更新服务。 只是一个想法