0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Powershell】IP自動取得へ切替(Win11版/HP限定?)No.4(最終)

Last updated at Posted at 2025-06-25

最近めっきりと減ったのですが、本日も
スマホテザリングで通信を行おうとしたんですが、インターネットが切断されている状態(地球儀マーク)でつながっていない。ノート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.コンピューターをサイ見そう。

参考サイトは
https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/networking/internet-protocol-properties-show-default-ip-address

さらに考察

現在Windows11になって
①設定>ネットワークとインターネット>Wi-Fi>接続済みのネットワークのプロパティ

image.png

②コントロースパネル>ネットワークと共有センター>アダプターの設定変更(左サイドメニュー)>Wi-Fi

スクリーンショット 2025-06-27 094454.png
Wi-Fiプロパティ
スクリーンショット 2025-06-27 094821.png

インターネットプロトコルバージョン4(TCP/IP)>プロパティ
スクリーンショット 2025-06-27 094901.png

次のアドレスを使うにしてIP入力
スクリーンショット 2025-06-27 095943.png

今回つねに問題になっていたのはDNSサーバーの保存先です。
(またさらにActiveDirectryのことにも言及します)

ここからこの固定(静的)IPを手動で入力してこの情報がRegistoryに保存され、既知のネットワークで再利用されるわけですが、これは以下のパスにあります。
検索窓>regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces
regedit内部
image.png

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より後)

今回問題になっているのは

NameServerProfileNameServer

レジストリキー 意味 上書きされるタイミング 優先度
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部門・管理者権限など)が必要です。
アクセスできない場合は、ドメイン管理者や情シス担当者に依頼して内容を確認してもらってください。

己を知り敵を知れば百戦危うからず

皆様のお役にたてれば幸いです。
また間違っていると思われることや何かアドバイスがあれば、さらにブラッシュアップいたします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?