
Microsoft社が提供するクラウドベースのデバイス管理サービス「Microsoft Intune」における、.intunewinファイルとPowerShellを使ったプリンタードライバーの配布例を紹介します。
これにより、組織内のWindowsPCに対し、プリンターの設定を配信できるようになります。
- 操作・管理デバイス環境:
- OS:Windows 11
- Webブラウザー:Edge
- 使用プラン:Microsoft 365 Business Premium
- プリンター:EPSONビジネス向けプリンター(PX-M885F)
*ネットワークプリンターとして使用
- レジストリ情報確認(Intune登録時必要)
- パッケージ作成ツール入手、パッケージ作成
- Intune管理C Windowsアプリへのプリンタードライバー登録
- 配布対象PC 配布状況確認
- 配布失敗時の対処(参考)
- おわりに(導入検証の難しさあり)
レジストリ情報確認(Intune登録時必要)
Microsoft Intuneへの登録時に必要となる、プリンタードライバーのレジストリ情報を確認します。
対象のプリンタードライバーをインストールしたPC(前の記事で検証のためps1ファイルを手動実行したPC)で、タスクバーの検索欄にregeditと入力して選択し、[レジストリ エディター]が表示されたら、[開く]を選択します。

Microsoft Intune登録時はアンインストールコマンドの入力が必須のため、これを確認します。「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall」の下で、対象のプリンタードライバーに関するキーを探し、見つけたらその中の「UninstallString」の値をテキストエディターにコピーする等して控えておきます。
この例では、以下の通りでした。
- レジストリキー: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\EPSON PX-M885F
- アンインストールコマンド(UninstallStringの値):
C:\WINDOWS\system32\spool\DRIVERS\x64\3\E_YINSSYJ.EXE /R /APD /P:"EPSON PX-M885F"

Microsoft Intune登録時は検出規則(既にインストール済かどうかの判断基準)の入力が必須のため、これを確認します。「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers」の下で、対象のプリンタードライバーに関するものを探し、キーとNameの値をテキストエディターにコピーする等して控えておきます。
この例では、以下の通りでした。
- レジストリキー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\EPSON PX-M885F
- Nameの値:EPSON PX-M885F

パッケージ作成ツール入手、パッケージ作成
WebブラウザーにてMicrosoft Win32コンテンツ準備ツール入手先にアクセスし、[Code>download ZIP]を選択します。

ダウンロードしたZIPファイルを展開し、その中にある[IntuneWinAppUtil.exe]ファイルを、前の記事で作成した作業フォルダー(この例ではC:\temp\printer_test)にコピーします。

PowerShellを管理者として実行します。

以下コマンドを実行します。
cd c:\temp\printer_test
.\IntuneWinAppUtil.exe -c C:\temp\printer_test\input -s printer_add.ps1 -o C:\temp\printer_test\output
「INFO File ‘C:\temp\printer_test\output\printer_add.intunewin’ has been generated successfully」のようなメッセージが表示されれば問題ありません。

outputフォルダーにアクセスし、パッケージが作成されたことを確認します。

Intune管理C Windowsアプリへのプリンタードライバー登録
WebブラウザーにてMicrosoft Intune管理センターにアクセスし、左メニューの[アプリ]を選択し、サブメニューの[プラットフォーム>Windows]を選択します。
[作成]を選択します。

[アプリの種類]で[Windows アプリ (Win32)]を選択し、[選択]ボタンを押します。
[アプリ パッケージ ファイルの選択]リンクを選択します。
[アプリのパッケージ ファイル]の右にあるフォルダーアイコンを選択します。

ファイルを開くダイアログが表示されたら、前の工程で作成したパッケージファイルを選択します。
元の設定画面に戻ったら、[OK]を選択します。

[アプリ情報]ステップでは、[名前]、[説明]、[発行元]を適宜入力し(*)、[次へ]を選択します。

[プログラム]ステップでは、以下の通り設定し、[次へ]を選択します。
- インストールコマンド:powershell.exe -executionpolicy bypass .\printer_add.ps1
- アンインストールコマンド:C:\WINDOWS\system32\spool\DRIVERS\x64\3\E_YINSSYJ.EXE /R /APD /P:"EPSON PX-M885F"(工程7で控えたアンインストールコマンド)
- デバイスの再起動:何もしない

[必要条件]ステップでは、以下の通り設定し、[次へ]を選択します。
- オペレーティングシステムのアーキテクチャ:64ビット
- 最小なオペレーティング システム:(インストールするWindowsPCの環境に合わせて適宜選択)

[規則の形式]で[検出規則を手動で構成する]を選択し、[追加]を選択します。
検出規則を以下の通り設定し(工程7で控えたレジストリキーと、その中に定義されていた名前と値を使用)、[OK]を選択します。
- 規則の種類:レジストリ
- キーパス:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\EPSON PX-M885F
- 値の名前:Name
- 検出方法:文字列を比較
- 演算子:指定の値に等しい
- 値: EPSON PX-M885F

[検出規則]ステップの設定が完了したら、[次へ]を選択します。
[依存関係]ステップは何も設定せず、[次へ]を選択します。
[置き換え]ステップについても、この例では置き換えを行わないということで何も設定せず、[次へ]を選択します。

[割り当て]ステップでは、配布対象のデバイスグループを設定します。この例では、全WindowsPCに自動配布させることとします。
[必須]の[グループの追加]を選択します。
全Windowsデバイスのグループにチェックをつけ(適当なグループがない場合は作成します)、[選択]ボタンを押します。
元の画面で[次へ]を選択します。

[確認と作成]ステップで設定内容を確認し、問題なければ[作成]を選択します。
「アップロード完了」のメッセージが表示されれば問題ありません。

配布対象PC 配布状況確認
配布対象のWindowsPCでプリンタードライバーの配布状況を確認します。
対象PCでインストールが行われると、デスクトップ上のトースト通知が表示されます。
「正常にインストールされました。」と表示されたら、前の記事の工程5でps1ファイルを手動実行した後と同じように、設定メニューからインストール状態を確認してみます。

Windowsの[設定]メニューを起動し、[Bluetoothとデバイス>プリンターとスキャナー]を選択し、対象のプリンターが表示されるか確認します。

対象のプリンターが表示されたらこれを選択し、[プリンターのプロパティ]を選択します。
[ポート]タブにps1ファイルで指定したポートが表示されれば問題ありません。
また、操作しているPCがプリンターに接続できる環境にあれば、テスト印刷を試すとなお確実です。

配布失敗時の対処(参考)
Intune管理C 配布状況確認
プリンタードライバーの配布状況は、Microsoft Intune管理センターの対象アプリの設定画面から確認できます。

配布が試行されたデバイスと試行結果を確認できます。

[インストールが正常に完了したにもかかわらず、アプリケーションが検出されませんでした (0x87D1041C)]というメッセージが表示された場合は、ps1ファイル内でpnputil.exeのパスが認識されていない(sysnativeを使用していない)可能性があります。
配布対象PC ログ確認
今回作成したPowerShellでは、C:temp\printer_testフォルダー上、「install_printer_log.txt」というファイル名で実行ログを出力しています。失敗したデバイス上でこのファイルを確認すると、失敗原因が分かるかもしれません。

Intune関連のログはC:\ProgramData\Microsoft\IntuneManagementExtension\Logsに出力されています。アプリ関連で深く調査をしたい場合は、「AppWorkload.log」ファイルを中心に確認してみてください。

配布が試行されない
配布が試行されない場合は、検出規則が不適切でインストール済と判断されている可能性があります。その場合は、検出規則を再確認します。
Intuneアプリ登録・更新がPCに反映されない
Intuneにアプリを登録・更新してからPCになかなか反映されない場合は、PC上の[ポータルサイト]アプリを起動してみると、反映されやすいです。
同アプリの[ダウンロードと更新プログラム]を選択すると、各アプリのインストール状況を確認できます(日付のみで時刻まで記載されていないため、いつインストールされたのか大まかにしか分かりませんが)。

おわりに(導入検証の難しさあり)
プリンタードライバーのメーカーや機種によって細かい設定は異なります。
特に前の記事の工程2で紹介したドライバーファイルから必要なリソースを読み解く作業や、それを踏まえて前の記事の工程4のPowerShellを作成する作業は、初めてですと試行錯誤することになるかもしれません。
今回の記事のように、作業工程の間に検証を挟み、問題がないことを確認してから次の工程に進めると、手戻りを軽減できます。
当ブログ内の連載記事