最近めっきりと減ったのですが、本日も
スマホテザリングで通信を行おうとしたんですが、インターネットが切断されている状態(地球儀マーク)でつながっていない。ノートPCからWi-Fiのプロパティを確認してみると、IPv4 DNSサーバーが会社の事務所内設置のWi-Fiのまま残っているという状態でした。
①スタートボタン>右クリック>デバイスマネージャー
②ネットワークアダプターのイーサネットとWi-Fiのデバイスのアンインストールを行い再起動して再度Wi-Fiの設定を行っていたのですが、今日マイクロソフトの回答がネット上で確認できたので、こちらに記しておきます。
対象サーバーはWindows Server
ネットワークのIPアドレス設定方法:固定(静的)IPアドレスを手動で設定
→TCP/IP プロパティが既定の設定に戻る問題
今の場合でいくと事務所のWi-FiのDNSサーバーのアドレスが入力された状態になること。
1.スタート>[ファイルを指定して実行]>[Regedit]
2.次のレジストリー サブキーを見つけて削除します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\Config
3.次のレジストリーキーを
[AD(アクティブディレクトリ)server]でない場合
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces{GUID}
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces{GUID}
[AD(アクティブディレクトリ)server]である場合↑は上の作業は飛ばす。
4.スタートボタンを右クリック[ファイル名を指定して実行]2>sys.mcpl>OK
5.SyStemsプロパティのダイヤログ>Hardware>デバイスマネージャーを開く
デバイスマネージャーでネットワークアダプターを展開し、Wi-Fiとイーサネットを右クリックしてUninstallする。
7.コンピューターをサイ見そう。
さらに考察
現在Windows11になって
①設定>ネットワークとインターネット>Wi-Fi>接続済みのネットワークのプロパティ
②コントロースパネル>ネットワークと共有センター>アダプターの設定変更(左サイドメニュー)>Wi-Fi
インターネットプロトコルバージョン4(TCP/IP)>プロパティ
今回つねに問題になっていたのはDNSサーバーの保存先です。
(またさらにActiveDirectryのことにも言及します)
ここからこの固定(静的)IPを手動で入力してこの情報がRegistoryに保存され、既知のネットワークで再利用されるわけですが、これは以下のパスにあります。
検索窓>regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces
regedit内部
interfaces内部にあるフォルダの{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} 形式の文字列は、
ネットワークインターフェース(アダプター)ごとの一意の識別子(GUID)を表しています。
GUIとは
Globally Unique Identifier(グローバル一意識別子)
各ネットワークアダプター(物理でも仮想でも)に割り当てられる、Windows内部の識別用IDです
GUIの形式
形式は以下のような128ビットの16進数です:
{8桁}-{4桁}-{4桁}-{4桁}-{12桁}
例: {3B3D3E0A-4D6A-4C9E-91BA-5C3E6D94A9FA}
どのGUIDがどのアダプターか調べる方法
Get-NetAdapter | Format-Table Name, InterfaceDescription, InterfaceGuid
実際に動かしてみると
PowerShell 7.4.6
A new PowerShell stable release is available: v7.5.1
Upgrade now, or check out the release page at:
https://aka.ms/PowerShell-Release?tag=v7.5.1
PS C:\Users\maedat5> Get-NetAdapter | Format-Table Name, InterfaceDescription, InterfaceGuid
Name InterfaceDescription InterfaceGuid
---- -------------------- -------------
TAP for beat-access TAP-Windows Adapter V9 for beat {XXXXXXXX-XX92-46XX-XX9D-0XXXXXXXXXX6}
Wi-Fi Intel(R) Wireless-AC 9560 160MHz {XXXXXXXX-XX92-46XX-XX9D-0XXXXXXXXXX6}
イーサネット Intel(R) Ethernet Connection (6) I219-V {XXXXXXXX-XX92-46XX-XX9D-0XXXXXXXXXX6}
Bluetooth ネットワーク接続 Bluetooth Device (Personal Area Network) {XXXXXXXX-XX92-46XX-XX9D-0XXXXXXXXXX6}
※GUIは書き換えてコピーしています。
各レジストリーキー一覧
キー名 | 説明 |
---|---|
AddressType | アドレスタイプ(0=静的、1=DHCPなど) |
DhcpConnForceBroadcastFlag | DHCP Discover をブロードキャストで強制送信するかの設定(通常は0) |
DhcpDefaultGateway | DHCPで取得したデフォルトゲートウェイのアドレス(複数可) |
DhcpGatewayHardwareCount | DHCPゲートウェイのMACアドレス数?通常は1 |
DhcpInternetOptions | DHCPオプション(バイナリ)。IE構成などにも関連することがある |
DhcpIPAddress | DHCPで取得したIPアドレス(静的なら空) |
DhcpNameServer | DHCPで配布されたDNSサーバーのIPアドレス(例:8.8.8.8など) |
DhcpNetworkHint | Windowsのネットワークプロファイル関連のヒント情報(SSIDなど) |
DhcpOfferDueToStaticIP | 静的IPでもDHCPサーバーから情報を取得した記録(通常は0) |
DhcpServer | IPを配布してきたDHCPサーバーのIPアドレス |
DhcpSubnetMask | DHCPで取得したサブネットマスク(例:255.255.255.0) |
DhcpSubnetMaskOpt | DHCPオプションとして提供されたマスク(バイナリ形式) |
Domain | ネットワーク接続時に取得したDNSサフィックス(例:corp.example.local) |
EnableDHCP | DHCP使用有無(0=静的、1=DHCP使用) |
IsServerNapAware | DHCPサーバーがNAP(Network Access Protection)対応か |
Lease | DHCPリース時間(秒単位) |
LeaseObtainedTime | リース取得時刻(Unixエポック形式) |
LeaseTerminatesTime | リース終了時刻(Unixエポック形式) |
NameServer | 手動で設定されたDNSサーバー(ここが社内固定だと問題になる) |
ProfileNameServer | 接続プロファイルに関連付けられたDNS(Wi-Fiなど) |
T1 | リース更新の第1タイミング(RFC2131に基づく) |
T2 | リース更新の第2タイミング(T1より後) |
今回問題になっているのは
NameServerとProfileNameServer
レジストリキー | 意味 | 上書きされるタイミング | 優先度 |
---|---|---|---|
NameServer | 現在のインターフェースに適用されているDNS設定(ユーザーまたはシステムが直接設定) | GUIやnetsh、GPO、スクリプトなど | 高い(最も直接的) |
ProfileNameServer | プロファイル(例:Wi-Fiプロファイル)に紐づいたDNSの初期値 | Wi-Fiプロファイルの切り替えや接続時 | 低い(NameServerが優先) |
🔎 詳しく説明すると…
✅ NameServer
GUI(コントロールパネルや設定アプリ)で DNSを手動設定したときに書き込まれます。
netsh interface ip set dns でもここに反映されます。
外部に出たときにも、この値が残っているとDNSが社内IPのままになりやすい原因です。
✅ ProfileNameServer
無線ネットワークやイーサネットプロファイルに関連した記憶されたDNS設定
たとえば「Wi-Fi-A」というSSIDに接続したときに、プロファイルとして設定されたDNSがここに書かれます。
ただし実際に使用されるのは NameServer が優先で、NameServer が空白の場合に補完的に参照されます。
今起こっていることそのもの
外部に出たときにも、この値が残っているとDNSが社内IPのままになりやすい原因です。
事務所から現場に出て行った(=外部に出た)際につながらないって電話があるんです。
結論
レジストリーキーのNameServerに保存された値をどうやって消すのかになります。
対策
外出先で正しく動かすには、NameServerを削除ことが有効です
具体手法
社外利用時は NameServer をクリア(削除 or DHCPに設定)
①スタート右クリック>デバイスマネージャー>ネットワークアダプター>Wi-Fiの方を選ぶ
×マークのデバイスのアンインストールをクリック
②スタート右クリック>ターミナル立ち上げ
Get-NetAdapter | Format-Table Name, InterfaceDescription, InterfaceGuid
GUIの一覧を取得したのちつなげたい(修復したい)ネットワークを確認
検索窓>regeditから以下のパスへ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces
該当のレジストリーキーを選択
NameServerを右クリック「修正」クリック
値のデータを消去
③cmd
netsh interface ip set dns name="Wi-Fi" source=dhcp
ProfileNameServer は特に明示的に触らなくてもOK(上書きはされにくい)
どうしてこれが起こるのかもさらに考察
まず、弊社では自社IPのWi-FiIPが固定(静的)。社員の皆様には個別でコントロールパネルからアダプターの設定を利用者個人でさせていたので、習慣が根付いていて、いまだにネットワークが切り替わる際も同じ場所IPを設定しがち。NameServerに入力している癖がついてしまっています。
通常はDHCPで自動IP割付で行うところが社内では常にそうなってしまっていたので、外部に行く際にはいったんクリアさせるか習慣をつけるべきだということになりました。
1年2か月かかりました。
マイクロソフトコミュニティに書き込んでもあまり理解されてない。
海外のサイトで探してもなかなかそれらしい答えにあたらない。
teratailでは何度も質問するので前の回答者の方に失礼と怒られる。
お金をつぎ込んでjustanswerとかいろいろやってみましたが、地道に調べていくのが一番で人に細かく悩みを伝えること自体にとっても時間がかかることだと思いました。
たとえ相手がプロでも専門家でもこちらもちゃんと下調べしていろいろ望まないと思わぬ方向にいって回答が得られないこともあるという教訓をえました。
とりあえずこれでいったん終わりですが、
追記
これから新たにホールディングスのネットワークに利用が切り替わっていくのですが、
ActiveDirectry(ドメイン参加)してPCが完全にグループポリシーなどで制御されているのですが、
これはActive DirectoryのSYSVOL共有に、スクリプトフォルダがあり、そこにログオンスクリプトというというファイルが仕込んであって
Script Name: set_dns.bat
Script Path: \\<ドメイン名>\SYSVOL\<ドメイン名>\scripts\set_dns.bat
あるようで、こちらはDNSを強制的に社内IPに固定しているものになります。
set_dns.bat1はおそらく中身はこんな感じ、
netsh interface ip set dns name="Wi-Fi" static 192.168.0.10
もしくは「バッチの中でWi-Fi接続時だけ設定しない」
for /f "tokens=2 delims=:" %%a in ('netsh wlan show interfaces ^| findstr "SSID"') do set ssid=%%a
if "%ssid%"==" Office-WiFi" (
netsh interface ip set dns "Wi-Fi" static 192.168.0.10
) else (
netsh interface ip set dns "Wi-Fi" dhcp
)
スクリプトの格納場所
\XXXXX.local\SYSVOL\XXXXX.local\scripts\set_dns.bat
通常、このフォルダへのアクセスにはドメイン参加PC & 十分な権限(IT部門・管理者権限など)が必要です。
アクセスできない場合は、ドメイン管理者や情シス担当者に依頼して内容を確認してもらってください。
己を知り敵を知れば百戦危うからず
皆様のお役にたてれば幸いです。
また間違っていると思われることや何かアドバイスがあれば、さらにブラッシュアップいたします。