前回は、インターネットかローカルネットワークかなど、現在接続しているネットワークを判別する仕組みである、Windowsのネットワークプロファイルについて簡単に解説した。今回は無線LANと携帯電話ネットワークのプロファイルと、ネットワークプロパティの1つである従量制課金接続の設定について解説する。
LTE内蔵ノートだけでなく、無線LANや有線LAN経由でも
従量制課金接続は設定可能
Windowsにおける、携帯電話回線を利用したネットワークには、MBN(Mobile Broadband Network)やWAN(Wide Area Network)などの異なる名称が用いられることがある。Windows 10で「設定」→「ネットワークとインターネット」では、「携帯電話」という表記になっている。本記事では「携帯電話ネットワーク」と表記することにする。
(LTE機能内蔵のノートPCなどで)携帯電話ネットワークで接続した場合、デフォルトで「従量制課金接続」になる(オフにすることもできる)。しかし、それ以外のイーサネットや無線LANでは、デフォルトでは通常接続となっていて、ユーザーが従量制課金接続であることを別途指定する必要がある(たとえばモバイルルーターやスマートフォンのテザリング機能を用いており、PCからは無線LAN経由で接続する場合などだ)。
実際の設定は、「設定」→「ネットワークとインターネット」で、「イーサーネット」「Wi-Fi」「携帯電話」のそれぞれからページのトップにあるネットワークプロファイル名をクリックする。開いたページに「従量制課金接続」があり、これを「オン」にすれば接続が従量制課金接続として認識される。
従量制課金接続になると、バックグラウンド通信が制限されるなど、ネットワークアクセスを抑制する。また、ネットワークを判別できるソフトウェア、たとえばOneDriveであれば、同期処理をするかどうかユーザーに尋ねてくる。
Windowsにおけるネットワークインターフェース
無線LANや携帯電話のプロファイルについて解説する前に、Windowsのネットワークインターフェースについて簡単に解説しておく。Windowsが認識しているネットワークハードウェアは、「ネットワークインターフェース」として扱われ、それぞれに固有のGUIDが割り当てられる。
ネットワークデバイスは複数のハードウェアが同時に、もしくは個別に本体に装着される可能性がある。たとえば、本体にイーサネットインターフェースを内蔵しているPCであっても、USB接続のLANアダプタを追加して利用することは可能だ。このため、接続されたハードウェアは、インターフェースとして認識したときにGUIDと呼ばれる固有の「番号」を付け、各種のプロファイルはどのインターフェースで接続したときのものなのかを区別する。
GUIDとは、128bitの数値で、重複がないように一定のアルゴリズムを使って生成される。レジストリやWindowsの設定ファイルでは、このGUIDを使って各種の情報の登録を行うことが多い。GUIDは、たとえば、「{3F2504E0-4F89-11D3-9A0C-0305E82C3301} 」のように、中括弧(波括弧)で囲まれた16進数表記をハイフンで区切ったもので表現される。
ネットワークインターフェースのGUIDは、以下のレジストリキーを見ることで知ることができる。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards
ここに数値だけのキーがあり、それぞれがネットワークインターフェースに対応する。この番号をネットワークインターフェース番号と呼ぶこともある。各番号の下に以下のような値がある
ServiceName:REG_SZ(文字列値)
これが、ネットワークインターフェースのGUIDを表している。
なお、具体的にどのネットワークハードウェアに対応しているのかは「Description」にハードウェア名などが記述されている。イーサーネットや無線LAN、携帯電話ネットワークモデムといったハードウェアが装着、内蔵されていれば、それぞれの記述があるはずだ。
無線LANのプロファイル
無線LANも携帯電話ネットワークも、前回解説したネットワークプロファイルで管理されている。しかし、その接続には、接続先の指定などの設定情報が必要になり、接続の管理を「WLANサービス」(WLANSvc)、「WWANサービス」(WWANSvc)が行なっている。まずは、無線LANプロファイルからみていくことにしよう。
Windows10では、無線LANプロファイルは、以下のフォルダにXMLファイルとして保存されている。
C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\
このフォルダに前述のネットワークインターフェースのGUIDを使ったフォルダがあり、その下に無線LANプロファイル(のXMLファイル)がおかれている。ここにあるXMLファイルのファイル名が無線LANプロファイルのGUIDとなる。XMLファイルは、テキスト型式なので、見れば、概要は理解できるだろう。なお、このXMLファイルに関しては、以下のURLに定義がある。
●Microsoft WLAN profile Schema(英語)
https://docs.microsoft.com/en-us/windows/desktop/nativewifi/wlan-profileschema-schema
携帯電話ネットワークのプロファイル
携帯電話ネットワークへの接続情報(アクセスポイント名の設定など)は、無線LANプロファイルと同じく、以下のフォルダにWWANプロファイルXMLファイルとして保存されている。ただし、こちらは、ネットワークインターフェースのGUIDを使ったフォルダを使っていない。
C:\ProgramData\Microsoft\WwanSvc\Profiles
やはり、ファイル名がWWANプロファイルのGUIDとなっている。定義は、以下のURLにある。
●Microsoft Mobile Broadband Profile Schema v4(英語)
https://msdn.microsoft.com/ja-jp/library/windows/desktop/mt243438.aspx?f=255&MSPPError=-2147217396
無線LANと携帯電話ネットワークの接続管理
前述のように無線LANへの接続は「無線LANサービス(WlanSvc)」が、携帯電話ネットワークへの接続は「Windows WANサービス(WwanSvc)」により管理されている。それぞれの管理情報がレジストリ中の以下のキー以下に置かれている。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WlanSvc
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WwanSvc
ここにそれぞれの「従量制課金接続」に関する情報が記録されている。Windows 10の「設定」→「ネットワークとインターネット」以下で、ネットワークプロパティを開いたときの従量制課金接続に対する設定が直接ここに反映されている。
無線LANの場合、無線LANプロファイルのGUIDとネットワークインターフェースのGUIDから以下のレジストリキーを見る
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WlanSvc\Interfaces\{インターフェースGUID}\Profiles\{WLANプロファイルGUID}\MetaData
このキーにある「User Cost」(REG_BINARY型)が
User Cost=02 00 00 00 02 00 00 00:従量制課金接続
User Cost=00 00 00 00 02 00 00 00:通常接続
なお、無線LANでは、通常接続がデフォルト値となるため、上記のレジストリ値が存在しない場合には通常接続と判断される。
携帯電話ネットワークの場合は、WwamプロファイルGUIDを使って、以下のレジストリキーを探す。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WwanSvc\Profiles\{不明GUID}\{WANプロファイルGUID}\MetaData
「{不明GUID}」となっているところは、なんらかのGUIDなのだが、無線LANのようにインターフェースGUIDなどではないようだ。しかし、下位のキーがWwanプロファイルGUIDとなっているため、探すことが可能だ。
ここにある「User Cost」(REG_BINARY型)が、従量制課金接続を示しているが、無線LANとは指定する数値が違うので注意されたい。また、MetaDataキーがそもそも存在しない場合には、携帯電話ネットワークの場合、従量制課金接続がデフォルト値であるため、そのように判断される。
User Cost= 00 00 00 00 02 00 00 00:従量制課金接続
User Cost= 01 00 00 00 02 00 00 00:通常接続
イーサネットの従量制課金接続
イーサネットの場合、以前は従量制課金接続に設定することはできなかったが、現在のWindows 10では設定が可能である。その設定は以下のレジストリキーにある。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DusmSvc\Profiles\{イーサネットインターフェースGUID}\*
ここにある「UserCost」(REG_DWORD型)が従量制課金接続かどうかを示す。他の違い名前にスペースが含まれないこと、DWORD型であることに注意されたい。また、キーがない場合には、デフォルト値である「通常接続」となる。
UserCost=00000000:通常接続(デフォルト値)
UserCost=00000002:従量制課金接続
DusmSvcは、「Data Usage Subscription Manager」で本来は、接続時間などを管理するためのサービスだ。おそらく、後追い的にイーサーネットの従量制課金接続を追加したとき、他のネットワークインターフェースのようにサービスがなかったため、ここに配置したと思われる。
前回解説したネットワークプロファイルでは、ネットワークの場所の設定(プライベート、パブリック)の設定が可能で、今回解説した「従量制課金接続」の設定と合わせることで、「設定」→「ネットワークとインターネット」にあるネットワークプロパティの設定項目をスクリプトなどによって、変更できるはずだ。
この連載の記事
-
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 - この連載の一覧へ