この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
はじめに
本記事では、プリンタサーバや関連サービスをクラウド化しオンプレミス環境でのプリンタサーバやプリンタドライバのインストールが不要となる「Universal Print」の検証結果について記載します。折角なので本検証では通常のクライアントPCから印刷するのではなくAVDのセッションホストから「Universal Print」を用いて印刷する方法を整理したいと思います。
目次
・構成概要
・事前準備
・前提条件
・設定手順
- AVD環境構築
- Hybrid Azure AD Joinの設定
- 管理者アカウントの準備
- Universal Print Connector設定
- Universal Print 設定
・動作確認
・まとめ
構成概要
シンプルなAVD環境とUniversal Printを組み合わせて、本検証では概ね以下の構成となります。

事前準備
今回の検証では以下を事前に準備する必要があります。
・Azure サブスクリプション:AVD環境の構築のために必要
・Universal Printを利用することのできるライセンス
※必要ライセンスの詳細についてはマイクロソフト社の以下ドキュメントを参照願いします。今回は試用版のMicrosoft 365 E3 ライセンスを上記のAzure ADにて有効化しました。
https://docs.microsoft.com/ja-jp/office365/servicedescriptions/universal-print-service-description/universal-print-service-description#available-subscriptions
・Azure AD :上記のAzure サブスクリプションおよびライセンスを本Azure ADに関連付ける。
・Universal Print Connector 用の端末:構成概要の注釈に記載した通り、Universal Print非対応のプリンターでUniversal Printを使用する為には、別途Universal Print Connector 用の端末が必要です。
・プリンター:Universal Print非対応で問題ありません。以降の手順でも非対応であることを前提に進めます。
前提条件
Universal Print Connector 用の端末
・次のOS要件を満たしていること
- Windows 10 64 bit、ProまたはEnterprise、Version 1809 以降
- Windows Server 2016 64 bit以降 (Windows Server 2019 64 bit以降を推奨)
・ .NET フレームワーク 4.7.2 以降がインストールされていること
・ 24時間/365日デバイスが稼働していること(スリープや休止状態も不可)
・ 常にインターネット接続していること
・ 次のインターネット エンドポイントにアクセスできること
- *.print.microsoft.com
- *.microsoftonline.com
- *.azure.com
- *.msftauth.net
- go.microsoft.com
- aka.ms
Universal Printを設定するアカウント
・Azure ADのプリンタ管理者またはグローバル管理者が割り当てられていること
・Universal Print(本手順ではMicrosoft 365 E3)のライセンスが付与されていること
設定手順
AVD環境構築
まずはAVD環境を構築します。本記事ではAVD環境の構築は本質ではない為手順自体は割愛しますが注意点をいくつか記載します。
①セッションホストの通信制御について
Universal Printを使用する為にはセッションホストサーバがインターネットに接続できる必要がありますので、Azure FirewallやNSGにてインターネット接続を拒否しないように環境を構築する必要があります。
②セッションホストのコンピューターアカウントを格納するOUについて
次の手順でHybrid Azure AD Joinの設定を実施します。Hybrid Azure AD Joinの設定に関連して、セッションホストのコンピューターアカウントを構成するOUは別途作成する事を推奨します。(セッションホスト以外のコンピューターアカウントをAzure AD Connect の同期対象から除外する為)
③ADDSサーバの要否について
最近ではADDS環境を用意せずにAVDを使用することもできるようになっておりますが、今回はADDSサーバを別途用意して検証しておりますので、冒頭の構成図に記載の通りADDSサーバやAzure AD Connect サーバをAzure VMにて構築する前提で進めます。
Hybrid Azure AD Joinの設定
続いてHybird Azure AD Joinの設定を実施します。Universal Printを使用するための要件としてクライアント端末がAzure AD Register、Azure AD Join、Hybrid Azure AD Joinのいずれかの方法でAzure AD にデバイス登録されている必要があります。今回クライアント端末に相当するのはAVDのセッションホストですがセッションホストはADDSにドメイン参加するのでAzure RegisterやAzure AD Join ではなくHybrid Azure AD Joinにてデバイス登録する必要があります。ただこの手順については本記事では詳細は割愛いたします。設定完了後、以下の画面のようにAzure AD にセッションホストサーバがデバイス登録されていることを確認します。

管理者アカウントの準備
Universal Printを構成するユーザーにUniversal Printのライセンスが割り当てられていることを確認します。
①Azure PortalにログインしAzure ADの画面を開きます。

②ユーザーを選択します。

③Universal Printを構成するユーザーアカウントを選択します。

④「ライセンス」を選択します。

⑤Microsoft 365 E3 ライセンスが割り当てられていることを確認し、「Microsoft 365 E3」をクリックします。

⑥「Universal Print」がオンになっていることを確認します。

Universal Print Connector設定
続いてUniversal Print Connectorの設定を進めます。前提条件を満たす端末にて作業を進めます。
①ブラウザを開き以下のリンクをクリックしてUniversal Print Connectorのインストーラーをダウンロードします。
https://aka.ms/UPConnector
②インストーラーを実行し、「I agree to the license terms and conditions」にチェックを入れて「install」を押下します。

③インストールが成功したら「Launch」を押下します。

④「Login」を押下します。

⑤Azure AD の認証画面が表示されるので、「管理者アカウントの準備」にて確認したアカウントでログインします。
⑥以下画面にて、「Connector name」に任意の名前を入力し、「Register」を押下します。

⑦「Refresh printers」を押下します。

⑧使用するプリンタが表示されたら、チェックボックスにチェックを入れ、「Register」を押下します。

※プリンターが表示されない場合は、Universal Print Connectorをインストールした端末に該当するプリンターが追加されているか否か確認します。追加されていない場合は予め追加しておきます。

⑨「Registered Printer」にプリンターが表示されることを確認します。

Universal Print 設定
①Azure Portalにて「ユニバーサル プリント」を開きます。
②「プリンター」を押下します。

③登録されたプリンターをチェックし、「共有」を押下します。

④プリンターを使用するユーザーアカウントを選択し、「プリンターの共有」を押下します。
ちなみに今回はAVDからUniversal Printを使用するので、AVDのホストプールに割り当てたユーザーを選択します。
※これらのユーザーアカウントもUniversal Printのライセンスが割り当てられている必要があります。冒頭の「事前準備」記載したUniversal Printのライセンスが含まれるライセンスが必要ですが、AVDの利用要件であるWindows 10 E3/E5ライセンスが含まれるライセンスと重複するケースもあるので(例えば今回使用したMicrosoft 365 E3であればWindows 10も Universal printも含まれています)、特段意識しなくても問題無い場合も多いと思います。

⑤「共有の状態」が「プリンターは共有されています」に変化することを確認します。

動作確認
ここまでで環境の準備が整いましたので、続いて動作確認を実施します。
動作確認前の推奨事項として、ローカルプリンターのリダイレクトとUniversal Printでのプリンターを区別する為、グループポリシーやRDPプロパティの設定でAVD環境でのプリンターリダイレクトを事前に拒否しておくことをお勧めします。
①AVDのHostpoolに割り当てたアカウントでAVDに接続します。

②プリンターの追加画面にてプリンターを検索し、Universal Printerに登録したプリンターが表示されることを確認し、当該プリンターを押下します。

③「管理」を押下します。

④「テストページの印刷」を押下します。

⑤初回は以下のエラーが表示される為、エラーメッセージを押下します。

⑥Azure ADの認証画面が表示されるのでユーザー情報を入力します。

⑦再度「テストページの印刷」を押下します。

⑧テストページが印刷されることを確認します。また、Azure Portalのプリンターの画面でジョブを開き、該当の印刷ジョブが存在することを確認します。

まとめ
以上の手順にてAVD環境でもUniversal Printを用いて印刷できることを確認できました。AVDを使用する場合のユーザーライセンスにUniversal Printのライセンスも含まれるため追加のランニング費用を掛けずに利用できるのがAVDと組み合わせた場合のメリットといえると思います。それからUniversal Print Connectを用意する必要がありますが、プリンター自体がUniversal Printに対応しているか否かは関係なく使用できるというのも検証のハードルが低く有難いと思いました。一方であくまでプリンターはオンプレミス環境に存在するので、今回の構成のユースケースは社内でAVDを使用して社内のプリンターに印刷するというシナリオに限られると思います。とはいえ中にはこのような要件も有ると思うので今回検証してみて無事使用できることを確認でき良かったと考えております。