Disable Windows Update when on 3G network
What I'm telling you here is not tested, so please do that yourself.
You have several approaches you can try and use:
Approach 1: In case you have the Advanced Windows Firewall Settings, you can create a custom rule.
When creating a Custom rule, you choose the Windows Update Application or Client, and When you choose the Scope, you pick "Remote Access" as a type of Interface to use. According to Windows Help, "Remote access" stands for
communications sent through remote access, such as a virtual private network (VPN) connection or dial-up connection that you have configured on the computer.
You can set the rule you specified to "Block" and all communications for the Windows Update Client should be prevented for these sort of connections.
This can lead to some problems:
- It is also blocked over VPN
- A tethered Connection may not count as Dial-Up
Approach 2:
You can manually set a certain global firewall rule off and on by a script in a file.
Go to your Advanced Firewall, and as in Approach 1, set a Firewall rule to block the Windows Update Client, but globally this time. Give it a distinctive name.
Now you can create a file, let's say "block update.cmd" where you write
netsh advfirewall firewall set rule name="personal update rule name" new enable=yes
Run the command with administrator rights to enable the rule, and for disabling the rule (and therefore enabling updates) write "enable=no", you can have a different file for that.
Maybe you can find a program that recognizes if there is a new network connection, via registry or WMI, and starts a program accordingly.
Approach 3:
Find a Firewall Software where you can set specific rules, as described in the first 2 steps, but on a network adapter basis (e.g. the iPhone Adapter)
Approach 4:
net stop wuauclt
stops the update service. This used to work on winxp, on vista/7 you may (also) need to stop wuauserv and/or bits. Unfortunately a manual action, but you could try to combine it with a vbs script checking the network status using wmi.