On my wife's laptop I'm trying to stop it using Windows Update by switching on metered connection. But there doesn't appear to be that option. When I go to Settings - Network & Internet - Wi-Fi, there is no advanced settings to click on and find metered connection. Here is a screen shot on what the Wifi tab looks like with no option to go any further that I can see. Why doesn't it look like the the examples I've found on the Internet?
MiketheBook 0 Junior Poster in Training
Reverend Jim 4,968 Hi, I'm Jim, one of DaniWeb's moderators. Moderator Featured Poster
I was checking out my settings to lead you through the steps when I noticed that the Advanced
link on my wi-fi settings was missing. This is where you would go to set/clear the metered option. Lacking this, there is a command line option. Open a command shell and type:
netsh wlan show profiles
On my laptop I see
Profiles on interface Wi-Fi:
Group policy profiles (read only)
---------------------------------
<None>
User profiles
-------------
All User Profile : KenNet
All User Profile : mynet-camp
All User Profile : mynet
All User Profile : ROGERS7608
The profile I am interested in is mynet-camp
. For further details type
netsh wlan show profile name="mynet-camp"
On my laptop I see
Profile mynet-camp on interface Wi-Fi:
=======================================================================
Applied: All User Profile
Profile information
-------------------
Version : 1
Type : Wireless LAN
Name : mynet-camp
Control options :
Connection mode : Connect automatically
Network broadcast : Connect only if this network is broadcasting
AutoSwitch : Do not switch to other networks
MAC Randomization : Disabled
Connectivity settings
---------------------
Number of SSIDs : 1
SSID name : "mynet-camp"
Network type : Infrastructure
Radio type : [ Any Radio Type ]
Vendor extension : Not present
Security settings
-----------------
Authentication : WPA2-Personal
Cipher : CCMP
Authentication : WPA2-Personal
Cipher : Unknown
Security key : Present
Cost settings
-------------
Cost : Fixed
Congested : No
Approaching Data Limit : No
Over Data Limit : No
Roaming : No
Cost Source : User
The area of interest is Cost Settings
. You can see that the first parameter is set to Fixed
. That corresponds to a metered connection. You can set metered or unmetered by
netsh wlan set profileparameter name="mynet-camp" cost=Fixed
netsh wlan set profileparameter name="mynet-camp" cost=Unrrestricted
where Fixed = metered and Unrestricted = non-metered
rproffitt commented: By your command. *bewoop bewoop. +11
Reverend Jim 4,968 Hi, I'm Jim, one of DaniWeb's moderators. Moderator Featured Poster
If you are concerned about inadvertantly borking something by using a command like netsh
that you are unfamiliar with you might use the following script code that I wrote up. It executes the netsh
command in a very restrictive fashion. You can use it in three ways:
- metered
- metered <profile>
- metered <profile> ON | OFF
The first form lists all wi-fi profiles. The second form (if you give it a profile name from the first form) will display the metered status of that profile. The third form will allow you to set the metered status on or off for a given profile. Copy the folllowing code and save in a file named metered.vbs
. Run it from within a command shell. See the notes in the file header.
'
' Name:
'
' metered.vbs
'
' Description:
'
' Command line utility to set an internet connection to metered
' or non-metered
'
' Usage:
'
' metered
'
' Show existing profiles
'
' metered <profile>
'
' Show metered/non-metered status of <profile>
'
' metered <profile> ON | OFF
'
' Set metered status of <profile> to on or off
'
' Notes:
'
' The default engine for running scripts is wscript.exe. Before
' running this script you should set the default engine to cscript.exe
' (command line - wscript is windowed). Open a command shell as
' Administrator and enter:
'
' cscript //nologo //h:cscript //s
'
' You will only have to do this once.
'
' Audit:
'
' 2016-11-10 rj original code
'
set wso = CreateObject("Wscript.Shell")
set arg = Wscript.Arguments
Select Case arg.Count
Case 0 'no args - show all profile names
profiles = Filter(ExecCmd("netsh wlan show profiles"),":")
Wscript.Echo Join(profiles,vbcrlf)
Case 1 'one arg - display current metered status for given profile
profile = ExecCmd("netsh wlan show profile name=""" & arg(0) & """")
status = Filter(profile,"Cost :")
Select Case True
Case not CheckProfileExists(arg(0),profile)
Case instr(status(0),"Fixed") > 0
Wscript.Echo arg(0),"is set to metered"
Case instr(status(0),"Unrestricted") > 0
Wscript.Echo arg(0),"is set to non-metered"
End Select
Case 2 'two args - set metered connection on or off for given profile
command = "netsh wlan set profileparameter name=""" & arg(0) & """ "
Select Case Ucase(arg(1))
Case "ON"
result = ExecCmd(command & "cost=Fixed")
CheckProfileExists arg(0),result
Case "OFF"
result = ExecCmd(command & "cost=Unrestricted")
CheckProfileExists arg(0),result
Case Else
Wscript.Echo "state must be either ON or OFF"
End Select
End Select
'Execute the given (DOS) command and return the output in a text array
Function ExecCmd ( cmd )
'Execute the command
dim exec: set exec = wso.Exec(cmd)
dim res : res = ""
'Read all result text from standard output
do
res = res & vbLf & exec.StdOut.ReadLine
loop until exec.StdOut.AtEndOfStream
'Return as a text array
ExecCmd = Split(Mid(res,2),vbLf)
End Function
'Return True if the output text in <text> was such that the given
'profile was valid, False otherwise (print error message if not valid)
Function CheckProfileExists (profile,text)
If Ubound(Filter(text,"is not found on the system")) = -1 Then
CheckProfileExists = True
Else
CheckProfileExists = False
Wscript.Echo "Profile",profile,"not found."
End If
End Function
MiketheBook 0 Junior Poster in Training
Thanks very much for your help. Much appreciated.
AkashThakkar 0 Newbie Poster
To open Advanced Settings, you need to click on the WiFi Name.
Scroll down and you'll find the option for Metered Connection.
Reverend Jim 4,968 Hi, I'm Jim, one of DaniWeb's moderators. Moderator Featured Poster
The problem is that on some systems the Advanced
option has been removed from the GUI. Thus the only way to set/unset the metered option is via the command line.
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.