Windows 10 がスキップされた DHCPv6 IPv6 アドレスを元に戻さないようにするにはどうすればよいですか? または、DHCPv6 を無効にする方法は?

Windows 10 がスキップされた DHCPv6 IPv6 アドレスを元に戻さないようにするにはどうすればよいですか? または、DHCPv6 を無効にする方法は?

私の学校は、学友全員に /64 プレフィックスの IPv6 ブロックを割り当てました。Windows 10 22H2 PC の 64 ビット サフィックスを修正したいので、次の PowerShell スクリプトを実行して、$ip送信パッケージに実際に使用される唯一の IP としてカスタム IPv6 アドレスを設定し、成功しました。

カスタム IPv6 アドレスを追加します。

New-NetIPAddress -InterfaceAlias Wi-Fi -IPAddress $ip -PolicyStore ActiveStore -PrefixLength 64
Set-NetIPAddress -IPAddress $ip -SkipAsSource $False

他のすべてのパブリック IPv6 アドレスを に設定して、送信パッケージに使用されないようにしますSkipAsSource$True

Get-NetIPAddress -InterfaceAlias Wi-Fi | ForEach-Object {
    if( ($_.AddressFamily.ToString() -eq "IPv6") -And ($_.IPAddress -ne $ip) -And ($_.PrefixOrigin.ToString() -ne "WellKnown") ){
        Set-NetIPAddress -IPAddress $_.IPAddress -SkipAsSource $True
    }
}

しかし、数分後、 の IPv6 アドレスPrefixOrigin"Dhcp"SkipAsSourceなり、PC は送信パッケージに DHCP IPv6 アドレスを使用するようになりました。原因を調べるために、次の PowerShell スクリプトを実行して、DHCP IPv6 アドレスがになった$False正確な時刻を調べました。SkipAsSource$False

$isChanged = $false
while( !$isChanged ){
    Start-Sleep 10
    Get-Date
    Get-NetIPAddress -InterfaceAlias "Wi-Fi" -AddressFamily IPv6 | ForEach-Object{
        if($_.PrefixOrigin -eq "Dhcp"){
            if($_.SkipAsSource -eq $False){
                $global:isChanged = $True
                Write-Host -ForegroundColor Red "Found it"
                break
            }else{
                Write-Host "Nothing wrong"
            }
        }
    }
}

私が見つけた時間範囲は ~ で2023-07-12 02:20:00 UTC+8、その後、おそらく関連している2023-07-12 02:20:10 UTC+8タイムスタンプが である次のシステム ログを見つけました。2023-07-12 02:20:01 UTC+8

イベント 7003 に関するシステム ログ - Roam Complete

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Netwtw04" />
    <EventID Qualifiers="16384">7003</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2023-07-11T18:20:01.5397220Z" />
    <EventRecordID>122318</EventRecordID>
    <Correlation />
    <Execution ProcessID="4" ThreadID="9152" />
    <Channel>System</Channel>
    <Computer>ComputerName</Computer>
    <Security />
  </System>
  <EventData>
    <Data>\Device\NDMP5</Data>
    <Data>Intel(R) Dual Band Wireless-AC 3165</Data>
    <Binary>0000080002003800000000005B1B00400000000000000000000000000000000000000000000000000000000000000000</Binary>
  </EventData>
</Event>

また、 からの次の 2 つのログはApplications and Services Logs\Microsoft\Windows\Dhcp-Client\Microsoft-Windows-DHCP Client Events/Admin同じタイムスタンプを持っています。 からの同じまたは隣接するタイムスタンプを持つログはありませんApplications and Services Logs\Microsoft\Windows\Dhcp-Client\Microsoft-Windows-DHCPv6 Client Events/Admin

DHCP クライアント イベント/イベント 50067 に関する管理イベント ログ

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Dhcp-Client" Guid="{15a7a4f8-0072-4eab-abad-f98a4d666aed}" />
    <EventID>50067</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>3</Task>
    <Opcode>57</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2023-07-11T18:20:01.5559344Z" />
    <EventRecordID>6641</EventRecordID>
    <Correlation />
    <Execution ProcessID="2044" ThreadID="6392" />
    <Channel>Microsoft-Windows-Dhcp-Client/Admin</Channel>
    <Computer>sanfrancisco</Computer>
    <Security UserID="S-1-5-19" />
  </System>
  <EventData>
    <Data Name="NetworkHintString">SSID</Data>
    <Data Name="NetworkHint">SSID hex</Data>
    <Data Name="HWLength">6</Data>
    <Data Name="HWAddress">MAC address</Data>
  </EventData>
</Event>

DHCP クライアント イベント/イベント 50065 に関する管理イベント ログ

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Dhcp-Client" Guid="{15a7a4f8-0072-4eab-abad-f98a4d666aed}" />
    <EventID>50065</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>3</Task>
    <Opcode>55</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2023-07-11T18:20:01.5559369Z" />
    <EventRecordID>6642</EventRecordID>
    <Correlation />
    <Execution ProcessID="2044" ThreadID="6392" />
    <Channel>Microsoft-Windows-Dhcp-Client/Admin</Channel>
    <Computer>sanfrancisco</Computer>
    <Security UserID="S-1-5-19" />
  </System>
  <EventData>
    <Data Name="NetworkHintString">SSID</Data>
    <Data Name="NetworkHint">SSID hex</Data>
    <Data Name="HWLength">6</Data>
    <Data Name="HWAddress">MAC address</Data>
  </EventData>
</Event>

では、DHCP IPv6 アドレスが元に戻らないようにするにはどうすればよいでしょうか? また、DHCPv6 を無効にするにはどうすればよいでしょうか?

答え1

ネット カードの DHCPv6 を で無効にできることが分かりましたSet-NetIPInterface -Dhcp Disable -InterfaceAlias Wi-Fi -AddressFamily IPv6。これを実行した後、ネット カードには、それぞれ自分で手動で設定したパブリック IPv6 アドレスと SLAAC で設定したパブリック IPv6 アドレスが 2 つだけありました。しかし、SLAAC IPv6 をSkipAsSourceに設定した後でも$True、数時間後に に戻りました$False。これで、SLAAC を で無効にしたところnetsh interface ipv6 set interface Wi-Fi routerdiscovery=disabled、Windows にはパブリック IPv6 アドレスが 1 つしかないため、問題は完全に解決しました。

関連情報