WindowsServerにSMバスコントローラ/LANドライバをインストールする


#はじめに#
WindowsServer2008R2からデジタル署名(ロゴ認証)のないドライバを導入するにはひと工夫必要になった。
ここではAsusやGigabyte等多くのマザーボードで実装されている”Intel Gigabit Ethernet Controller I217-V”および”システムマネジメントバス(SMバス)コントローラのドライバを導入する手順をメモする。

#構成#
実験で利用する環境は以下の通り
* CPU Intel Core i5-4590s
* Gigabyte GA-H97N-WIFI (Intel Gigabit Ethernet Controller I217-V)
* Memory PC3-12800 16GB
* WindowsServer2012Standard

#準備#
##LANドライバ##
1. NICのベンダIDとデバイスIDを確認する
Windowsのデバイスマネージャから該当するデバイスのプロパティを開き、[詳細]→[プロパティ]で”ハードウェアID”を選択。
表示される値をメモする。
![LAN_PROPERTIES.png](https://qiita-image-store.s3.amazonaws.com/0/73245/a19a5045-5ed1-98b9-0467-b2e162347e21.png)


2. ベンダIDおよびデバイスIDからチップ型番を調べる
以下のサイトにアクセスしNICのチップ型番を調べる。
http://www.pcidatabase.com/
Gigabyte GA-H97N-WIFI の場合、VendorID:8086 DeviceID:153B、Intel Gigabit Ethernet Controller I217-V とわかる。

3. ベンダーのサイトからドライバを入手する
https://downloadcenter.intel.com/search?keyword=Intel%C2%AE+Ethernet+Connection+I217-V
で検索し、”Intel Ethernet Connections CD”をダウンロードする。
![LAN_DRIVER.png](https://qiita-image-store.s3.amazonaws.com/0/73245/0441b04a-ed39-ee92-4d3f-cce9e0e7c07a.png)


4. ”Intel Ethernet Connections CD”を解凍しinfファイルを編集する
/PRO1000/Winx64/NDIS62,NDIS63,NDIS64の配下にある*.infファイルから”153B”という文字列を検索。
![LAN_INFO_MODIFY.png](https://qiita-image-store.s3.amazonaws.com/0/73245/fb53dbb1-4691-4b7d-09fe-ffd28a8a25ce.png)


```e1d64x64.inf
[Intel.NTamd64.6.3.1]
; DisplayName                   Section              DeviceID
; -----------                   -------              --------
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A&SUBSYS_00008086
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A&SUBSYS_00011179
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B&SUBSYS_00008086
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B&SUBSYS_00011179
%E155ANC.DeviceDesc%            = E155A.6.3.1,       PCI\VEN_8086&DEV_155A
%E155ANC.DeviceDesc%            = E155A.6.3.1,       PCI\VEN_8086&DEV_155A&SUBSYS_00008086
%E155ANC.DeviceDesc%            = E155A.6.3.1,       PCI\VEN_8086&DEV_155A&SUBSYS_00011179
%E1559NC.DeviceDesc%            = E1559.6.3.1,       PCI\VEN_8086&DEV_1559
%E1559NC.DeviceDesc%            = E1559.6.3.1,       PCI\VEN_8086&DEV_1559&SUBSYS_00008086
%E1559NC.DeviceDesc%            = E1559.6.3.1,       PCI\VEN_8086&DEV_1559&SUBSYS_00011179
%E15A0NC.DeviceDesc%            = E15A0.6.3.1,       PCI\VEN_8086&DEV_15A0
%E15A0NC.DeviceDesc%            = E15A0.6.3.1,       PCI\VEN_8086&DEV_15A0&SUBSYS_00008086
%E15A1NC.DeviceDesc%            = E15A1.6.3.1,       PCI\VEN_8086&DEV_15A1
%E15A1NC.DeviceDesc%            = E15A1.6.3.1,       PCI\VEN_8086&DEV_15A1&SUBSYS_00008086
%E15A2NC.DeviceDesc%            = E15A2.6.3.1,       PCI\VEN_8086&DEV_15A2
%E15A2NC.DeviceDesc%            = E15A2.6.3.1,       PCI\VEN_8086&DEV_15A2&SUBSYS_00008086
%E15A2NC.DeviceDesc%            = E15A2.6.3.1,       PCI\VEN_8086&DEV_15A2&SUBSYS_00011179
%E15A3NC.DeviceDesc%            = E15A3.6.3.1,       PCI\VEN_8086&DEV_15A3
%E15A3NC.DeviceDesc%            = E15A3.6.3.1,       PCI\VEN_8086&DEV_15A3&SUBSYS_00008086
%E15A3NC.DeviceDesc%            = E15A3.6.3.1,       PCI\VEN_8086&DEV_15A3&SUBSYS_00011179

[Intel.NTamd64.6.3]
; DisplayName                   Section        DeviceID
; -----------                   -------        --------
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A&SUBSYS_00008086
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A&SUBSYS_00011179
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A&SUBSYS_00008086
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A&SUBSYS_00011179
%E15A0NC.DeviceDesc%            = E15A0,       PCI\VEN_8086&DEV_15A0
%E15A0NC.DeviceDesc%            = E15A0,       PCI\VEN_8086&DEV_15A0&SUBSYS_00008086
%E15A2NC.DeviceDesc%            = E15A2,       PCI\VEN_8086&DEV_15A2
%E15A2NC.DeviceDesc%            = E15A2,       PCI\VEN_8086&DEV_15A2&SUBSYS_00008086
%E15A2NC.DeviceDesc%            = E15A2,       PCI\VEN_8086&DEV_15A2&SUBSYS_00011179
```

上記[Intel.NTamd64.6.3.1]セクションに記載されている"153B～”の3行を[Intel.NTamd64.6.3]セクションにも追加する。

```e1d64x64.inf
[Intel.NTamd64.6.3.1]
; DisplayName                   Section              DeviceID
; -----------                   -------              --------
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A&SUBSYS_00008086
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A&SUBSYS_00011179
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B&SUBSYS_00008086
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B&SUBSYS_00011179
%E155ANC.DeviceDesc%            = E155A.6.3.1,       PCI\VEN_8086&DEV_155A
%E155ANC.DeviceDesc%            = E155A.6.3.1,       PCI\VEN_8086&DEV_155A&SUBSYS_00008086
%E155ANC.DeviceDesc%            = E155A.6.3.1,       PCI\VEN_8086&DEV_155A&SUBSYS_00011179
%E1559NC.DeviceDesc%            = E1559.6.3.1,       PCI\VEN_8086&DEV_1559
%E1559NC.DeviceDesc%            = E1559.6.3.1,       PCI\VEN_8086&DEV_1559&SUBSYS_00008086
%E1559NC.DeviceDesc%            = E1559.6.3.1,       PCI\VEN_8086&DEV_1559&SUBSYS_00011179
%E15A0NC.DeviceDesc%            = E15A0.6.3.1,       PCI\VEN_8086&DEV_15A0
%E15A0NC.DeviceDesc%            = E15A0.6.3.1,       PCI\VEN_8086&DEV_15A0&SUBSYS_00008086
%E15A1NC.DeviceDesc%            = E15A1.6.3.1,       PCI\VEN_8086&DEV_15A1
%E15A1NC.DeviceDesc%            = E15A1.6.3.1,       PCI\VEN_8086&DEV_15A1&SUBSYS_00008086
%E15A2NC.DeviceDesc%            = E15A2.6.3.1,       PCI\VEN_8086&DEV_15A2
%E15A2NC.DeviceDesc%            = E15A2.6.3.1,       PCI\VEN_8086&DEV_15A2&SUBSYS_00008086
%E15A2NC.DeviceDesc%            = E15A2.6.3.1,       PCI\VEN_8086&DEV_15A2&SUBSYS_00011179
%E15A3NC.DeviceDesc%            = E15A3.6.3.1,       PCI\VEN_8086&DEV_15A3
%E15A3NC.DeviceDesc%            = E15A3.6.3.1,       PCI\VEN_8086&DEV_15A3&SUBSYS_00008086
%E15A3NC.DeviceDesc%            = E15A3.6.3.1,       PCI\VEN_8086&DEV_15A3&SUBSYS_00011179

[Intel.NTamd64.6.3]
; DisplayName                   Section        DeviceID
; -----------                   -------        --------
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A&SUBSYS_00008086
%E153ANC.DeviceDesc%            = E153A,       PCI\VEN_8086&DEV_153A&SUBSYS_00011179
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A&SUBSYS_00008086
%E155ANC.DeviceDesc%            = E155A,       PCI\VEN_8086&DEV_155A&SUBSYS_00011179
%E15A0NC.DeviceDesc%            = E15A0,       PCI\VEN_8086&DEV_15A0
%E15A0NC.DeviceDesc%            = E15A0,       PCI\VEN_8086&DEV_15A0&SUBSYS_00008086
%E15A2NC.DeviceDesc%            = E15A2,       PCI\VEN_8086&DEV_15A2
%E15A2NC.DeviceDesc%            = E15A2,       PCI\VEN_8086&DEV_15A2&SUBSYS_00008086
%E15A2NC.DeviceDesc%            = E15A2,       PCI\VEN_8086&DEV_15A2&SUBSYS_00011179
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B&SUBSYS_00008086
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B&SUBSYS_00011179
```

##SMバスコントローラ##

1. SMバスコントローラのドライバを入手する
システム・マネジメント・バスコントローラはIntelのサイトから入手する。
Intel® Chipset Device Software (INF Update Utility)
https://downloadcenter.intel.com/ja/product/1145/-

![SM_DriVER.png](https://qiita-image-store.s3.amazonaws.com/0/73245/fffe32b3-3cad-901c-592d-11563827edc4.png)

2. Chipset_10.0.26_Public.zipファイルを解凍する

#インストール#

1. デジタル署名無効化/テスティングモードの有効化の実施
コマンドプロンプトを管理者で起動し、以下コマンドでデジタル署名制限を無効化する
```
bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON
```

2. Windowsを再起動する
3. "ドライバの更新"の実施
LANドライバは、デバイスマネージャから”イーサネットコントローラ”を開き、[ドライバの更新]をクリック。解凍した”Intel Ethernet Connections CD”を選択しドライバを適用する、。
SMバスコントローラは、解凍した”Chipset_10.0.26_Public”の中にあるセットアッププログラムでドライバを適用する。

4. デジタル署名有効化/テスティングモードの無効化の実施
終わったら元に戻して終了。
```
bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING OFF
```
#終わりに#
GA-H97N-WIFI にはREALTEKのGigabitEtherも備えているが、こちらはするっと認識する。
LAN定評あるIntelのほうが導入に手こずった。
BluetoothはOS的にダメみたい。