本記事は 2018 年 3 月 26 日に公開された記事を本ブログに移行した記事になります。
こんにちは。Windows プラットフォーム サポートです。
Windows Server 2008 で 2018 年 3 月 14 日公開の更新プログラム (KB4089229) を適用すると、有線 LAN 利用時において後述の問題が発生することが判明しましたので、本 Blog でご案内します。
本問題は、以下の KB4089229 でも Known Issue として公開しています。
・Description of the security update for the Windows Kernel vulnerabilities in Windows Server 2008: March 13, 2018
https://support.microsoft.com/en-us/help/4089229
[ 問題の概要 ]
Windows Server 2008 に KB4089229 を適用すると、ネットワーク インターフェースに静的に設定した IP アドレス情報が失われ、DHCP 設定に置き換わる問題が発生することがあります。
[ 対象 OS ]
Windows Server 2008 SP2
[ 原因 ]
3 月の更新プログラムを適用すると、OS の pci.sys ドライバーが更新され、pci.sys の過去の修正が累積して適用されます。
pci.sys の過去の修正のうち、本問題は KB2487376 の更新プログラムが契機となって発生します。
(KB2487376 以降のバージョンの pci.sys が既に適用されている場合は、本問題は発生しません)
・FIX: Stop error when you replace an iSCSI network adapter or a motherboard by using an identical device on a Windows Server 2008-based or Windows Vista-based computer: “0x0000007B”
https://support.microsoft.com/en-us/help/2487376
KB2487376 では、デバイス インスタンス パスを生成する際の Serial Number の扱いを DWORD (32 ビット) から QWORD (64 ビット) に変更しています。
この修正を適用することで、NIC のデバイス インスタンス パスが変化し、新しい NIC として認識されることで、本問題が発生します。
(デバイス インスタンス パスの例)
// KB2487376 適用前
PCI\VEN_8086&DEV_109A&SUBSYS_207E17AA&REV_00\FF3BD28D00
// KB2487376 適用後
PCI\VEN_8086&DEV_109A&SUBSYS_207E17AA&REV_00\0016D3FFFF3BD28D00
[ 発生条件 ]
以下の 2 つの条件を両方満たす場合に、本問題が発生します。
a. pci.sys のバージョンが GDR 版 (6.0.6002.1xxxx) であること
b. NIC が PCI Express で Device Serial Number をサポートしていること
上記いずれかの条件を満たさない場合には、本問題は発生しません。
また、Hyper-V の仮想マシンでは、“ネットワーク アダプター”、”レガシ ネットワーク アダプター” とも上記 b に該当しないため、本問題は発生しません。
[ 対処方法 ]
これから KB4089229 を適用される場合は、以下の手順で対処を実施ください。
- KB4089229 の Known issue にある以下のスクリプト内容をコピーし、テキストファイルに貼り付けて、例えば Script.vbs などの拡張子 .vbs を持つファイルとして保存します。
このスクリプトでは、pci.sys のバージョンが 6.0.6002.22567 未満の場合に、レジストリ設定 (HKLM\System\CurrentControlSet\Control\PnP\Pci\HackFlags = 0x00040000) を追加します。
1 | Set WshShell = WScript.CreateObject("WScript.Shell") |
- KB4089229 適用前の任意のタイミング、または KB4089229 適用後の OS 再起動前に、以下のコマンドでスクリプトを実行します。
cscript <スクリプトファイルの名前>
例) cscript Script.vbs
- KB4089229 を適用して OS を再起動します。
補足事項 :
KB4089229 を適用後に OS 再起動した後は、pci.sys のバージョンが更新されているため、上記のスクリプトを実行してもレジストリ設定は追加されません。
すでに KB4089229 を適用して問題が発生している状態の場合、以下のレジストリ設定を追加して OS 再起動することで復旧します。
キー : HKLM\System\CurrentControlSet\Control\PnP\Pci
名前 : HackFlags
種類 : REG_DWORD
設定値 : 0x00040000 (既に HackFlags が存在する場合、既存の値に +0x00040000 した値を設定ください)
この設定により、KB4089229 適用後も、デバイス インスタンス パスの Serial Number が DWORD のまま扱われます。
[ 参考情報 ]
本問題の発生条件に該当するかどうか確認する場合は、以下の手順を実施します。
(1) pci.sys のバージョンを確認します。
コマンドで確認する場合、以下を実行します。
wmic datafile where name=”C:\Windows\system32\drivers\pci.sys” get version /value
以下の例のように、pci.sys のバージョンが 6.0.6002.2xxxx (LDR 版) である場合、本問題は発生しませんので、KB4089229 適用前に事前の対処は必要ありません。
以下の例のように、pci.sys のバージョンが 6.0.6002.1xxxx (GDR 版) である場合、本問題が発生し得ますので、(2) の確認に進みます。
![](1408708 (1).png)
(2) NIC が PCI Express Serial Number に対応しているか、確認します。
(2-1) コマンドで確認する場合、以下を実行します。
wmic path win32_pnpentity where ClassGUID=”{4d36e972-e325-11ce-bfc1-08002be10318}” get DeviceID | find /i “PCI”
以下の例では、NIC のデバイス インスタンス パスで最後の “\” の後に “&” を含む形式となっています。
この場合、Serial Number に非対応の NIC であり、本問題は発生しませんので、KB4089229 適用前に事前の対処は必要ありません。
以下の例では、NIC のデバイス インスタンス パスで最後の “\” の後に “&” を含まず、Serial Number が付加される形式となります。
この場合、Serial Number に対応している NIC であり、本問題が発生しますので、事前の対処が必要です。
(2-2) デバイス マネージャーで確認する場合、NIC のデバイス インスタンス パスを確認します。
以下の例では、NIC のデバイス インスタンス パスで最後の “\” の後に “&” を含む形式となっています。
この場合、Serial Number に非対応の NIC であり、本問題は発生しませんので、KB4089229 適用前に事前の対処は必要ありません。
以下の例では、NIC のデバイス インスタンス パスで最後の “\” の後に “&” を含まず、Serial Number が付加される形式となっています。
この場合、Serial Number に対応している NIC であり、本問題が発生しますので、事前の対処が必要です。
[ 参考情報 ]
・Description of the security update for the Windows Kernel vulnerabilities in Windows Server 2008: March 13, 2018
https://support.microsoft.com/en-us/help/4089229
[ 関連情報 ]
3月の更新プログラムを適用すると無線 LAN,有線 LAN 利用時に問題が発生する (Windows 7 / Windows Server 2008 R2) https://blogs.technet.microsoft.com/jpntsblog/2018/03/19/lan_problem_after_update_3b/
[ 更新履歴 ]
2018/03/26 : 本 Blog の公開
2018/04/02 : 本 Blog の更新
2018/04/09 : 本 Blog の更新 (対処方法を更新)
[特記事項]
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。