Windowsのインストールをプッシュしようとして、ドライバーを一つ一つ手動でインストールしなければならなかった経験があるなら、この裏技を使えばかなりの時間を節約できるかもしれません。システム管理者や複数のマシンを導入する人にとっては、まさに奇跡と言えるでしょう。事前にインストールイメージにすべてのドライバーを直接追加しておくことで、Windowsは必要なものをすべてすぐに入手でき、インストール後にオンラインでドライバーを探す手間を省くことができます。このアプローチは、Windows 10、11、Windows Serverエディションなど、最新のWindowsのほとんどで有効です。手動ダウンロードと完全自動化の中間的な方法ですが、複数のマシンをセットアップする場合やイメージリポジトリを更新する場合は、ぜひ知っておく価値があります。
一つ困ったことに、多くのベンダー製ドライバーは、単なるクリーンなINFファイルではなく、自己解凍型実行ファイルや圧縮アーカイブとして提供されています。そのため、まずはこれらのアーカイブを解凍する必要があります。その際、 inf、sys、cat の各ファイルがローカルディレクトリに展開されていることを確認してください。実際には非常に簡単なのですが、解凍作業が大量に必要になるので少し面倒です。また、ヒントとして、一部のドライバー、特にネットワークコントローラーやディスクコントローラーは、インストール直後からWindowsにハードウェアを認識させるため、最初から組み込むことをお勧めします。ただし、セットアップによっては、初回の統合が完璧に機能せず、再起動や再実行が必要になる場合があることに注意してください。
Windowsインストールイメージにドライバーを挿入する方法
PowerShell を使用してドライバーを挿入する
これは今では定番の方法の一つで、特にMicrosoftがimagexなどの古いツールを廃止して以来、ますます普及しています。ドライバーをディレクトリに用意し、Windowsイメージをマウントしてドライバーを追加、アンマウントするといった一連の作業を、すべてPowerShellで実行できるというわけです。なぜこれが便利なのか?それは、慣れてしまえば非常に高速で、複数のイメージや異なるWindowsエディションでもプロセス全体を自動化できるからです。
まず、すべてのドライバーファイル(主にinfファイル)をフォルダにまとめます。多くのベンダーはzipファイルまたは実行ファイルで提供しています。これらのアーカイブをローカルで解凍し、必要なファイルが含まれていることを確認してください。Windowsは、実行ファイル形式のインストーラではなく、ドライバー本体のinfファイル、sysファイル、catファイルにアクセスする必要があるためです。
次に、必要なディレクトリ構造を作成します。 – Drivers : 解凍されたすべてのドライバーが含まれます (それぞれ独自のフォルダー内)。 – ISO : Windows ISO の抽出 (主にソースフォルダー内のinstall.wim )。 – Mount : オフライン イメージをマウントする空のフォルダー。
install.wim内の Windows エディションを確認するには、次のコマンドを実行します。
Get-WindowsImage -ImagePath C:\Path\to\your\install.wim
これにより、内部の異なるインデックス(エディション)が表示されるので、どのエディションにドライバーを追加すればよいかがわかります。例えば、エディションが1つだけの場合はインデックス1が適切ですが、複数のエディションがある場合は、展開する内容に応じて適切なものを選択してください。
ISO に しか含まれていない場合はinstall.esd、まず WIM に変換する必要があります。DISM がその変換を行います。変換コマンドは以下のとおりです。
DISM /Export-Image /SourceImageFile:"C:\Path\to\install.esd" /SourceIndex:4 /DestinationImageFile:C:\Path\to\install.wim /Compress:max /CheckIntegrity
install.wimができたら、マウントしてドライバーを追加します。マウントには以下のコマンドを使用します。
Mount-WindowsImage -Path C:\Path\to\Mount\ -ImagePath C:\Path\to\install.wim -Index 1
マウント後、次のようにドライバーを追加します。
Add-WindowsDriver -Path C:\Path\to\Mount\ -Driver C:\Path\to\Drivers\* -Recurse
これはPowerShellにドライバーフォルダーを再帰的にスキャンさせ、すべてのINFファイルを取得するように指示します。これにより-Recurse、ネストされたフォルダーも含め、すべてのドライバーファイルが取得されます。ちょっとしたヒントですが、署名されていないドライバーを取得する場合、以下のコマンドでドライバー署名の強制を無効にする必要があることがあります。
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\Cdrom" -Name "AutoRun" -Value 0
(ただし、実際には、それは他の調整のためのものです。)
ドライバーが追加されたら、イメージをアンマウントして保存します。
Dismount-WindowsImage -Path C:\Path\to\Mount\ -Save
完了です!WIMにすべてのドライバーが保存されました。これにより、起動可能なメディアやインストールイメージを作成する際に、Windowsがハードウェア、特にネイティブサポートされていないストレージデバイスやネットワークデバイスをより簡単に検出できるようになります。
注意事項と追加のヒント
Windows PEまたはセットアップ時に使用されるboot.wimにドライバーを追加すると、セットアップでドライブが正しく検出されない場合(NVMeやRAIDコントローラーが起動時に認識されないなど)、大きな助けになることがあります。手順は同じですが、メインのインストールイメージではなくブートイメージを使用します。
また、スペースを節約するために変更したinstall.wim をESDに戻す場合は、次のコマンドを使用します。
DISM /Export-Image /SourceImageFile:C:\Path\to\install.wim /SourceIndex:1 /DestinationImageFile:C:\Path\to\install.esd /Compress:recovery
最後に、ISOを作成するには、Windows ADKのoscdimgのようなユーティリティが便利です。例えば:
oscdimg -n -m -bC:\Path\to\boot\etfsboot.com C:\Path\to\ISO C:\Path\to\new_win10.iso
UEFIとBIOSの両方をサポートしたい場合は、このコマンドが-bootdata便利です。USBメモリの場合は、Rufusを使えばISOファイルをUSBメモリに簡単に保存できます。手間はかかりません。
最初は少し大変に感じるかもしれませんが、ワークフローを理解すれば、大幅に時間を節約できます。また、環境によっては、ドライバーの挿入プロセスが最初から完璧に機能しない場合があります。そのため、やり直しが必要になったとしても、心配する必要はありません。場合によっては、Windowsを再起動したり、少し調整するだけで済むこともあります。
まとめ
- ドライバーを別々のフォルダに準備する
- すべてのベンダードライバアーカイブを抽出して解凍する
- PowerShell を使用して、ドライバーをマウントし、install.wim に挿入する
- 展開用の起動可能な ISO を再組み立てして作成する
- 必要に応じてブートイメージ用のドライバーを含めることを忘れないでください
まとめ
展開前にWindowsイメージにドライバーを直接組み込むことは、まさに画期的なことです。セットアップ時の手間を大幅に軽減し、ハードウェアがすぐに認識されるので、混乱することはありません。複数のマシンを使用する場合や、イメージングワークフローを高速化する場合、初期セットアップに費やす時間は十分に価値があります。ただし、特に署名されていないドライバーや扱いにくいハードウェアの場合は、試行錯誤が必要になることを覚悟しておいてください。しかし、一度うまくいけば、効率性は飛躍的に向上します。