Windows の AutoPilot キッティングをゼロから構成する
はじめに、AutoPilotとは
Windows AutoPilot(以下AutoPilot)とは一言でいうと初期状態のWindows PCを自動でキッティングしてくれる機能のことです。
具体的には下記のようなことができます。
公式のドキュメントより
Windows Autopilot では、次のことを行うことができます。
- Active Directory (Azure AD) または Active Directory (Hybrid Azure AD Join 経由) にデバイスを自動的に参加させる。 これら 2 つの結合オプションの違いの詳細については、「Azure Active Directory でのデバイス管理の概要」を参照してください。
- Microsoft Intune などの MDM サービスにデバイスを自動登録します (構成にはAzure AD Premium サブスクリプションが必要です)。
- デバイスのプロフィールに基づいて、デバイスを作成し、構成グループに自動割り当てを行う。
- 組織に固有の OOBE コンテンツをカスタマイズします。
AutoPilotすると何がうれしいのか
皆さんの会社では貸与するPCをどのように用意していますでしょうか。
部署Xの人はアプリA, B, C を入れる必要があって、部署Yはあの設定は許可してなくて・・など誰に渡すのか判断しつつ毎回手動で変えたりしてませんでしょうか。
もしかすると全部ユーザーに丸投げで、長い手順書を初日にやらせていたりしませんでしょうか。
あるいは社内のネットワークに接続した環境でActive Directoryに参加させてグループポリシー、MECM(SCCM)、WSUSで自動的にキッティングしていますでしょうか。(これは実際効率的なやり方だと思いますが、ゼロトラストが叫ばれて久しい昨今、社内のネットワークに依存することは運用のボトルネックになったり、セキュリティ的に脆弱になりやすいという課題があります)
もちろんいろいろな事情でそれらを完全になくすのは難しい場合もあると思いますが、AutoPilot + Intune + Azure AD によって多くは自動化することができ、社内ネットワークへの依存から脱却を進めることができます。
これは利便性という意味でもセキュリティの意味でも有効なことです。
何よりIT管理者は入社のタイミングに合わせて何台もPCをキッティングしなければならない苦役から少しだけ抜け出せます。
なお本記事ではAzure ADやIntuneを深堀せず、AutoPilotの構成にフォーカスして紹介したいと思います。
補足
注意すべき事として、AutoPilotはAzure ADにデバイスを参加させるAADJ(Azure AD join)とIntune登録までを担っているのであって、デバイスの設定を変更してくれるものではありません(そこはIntuneがやる)
つまりキッティングの運用を楽にするためにはAutoPilotだけではだめで、Azure ADのグルーピングやIntuneでの各種設定、アプリ、スクリプトの配布も構成する必要があるということです。
それぞれの役割、関係
- AutoPilot
- 初期状態のPCにログインするだけでAzure AD参加とIntune登録してくれる
- Intune
- デバイスの設定、アプリケーション、スクリプトを配布
- ハードやソフトのバージョン管理、資産管理、インベントリ収集
- デバイスのセキュリティポリシーへの準拠状況確認、強制
- Windows Update for Business
- Azure AD
- デバイスとユーザーを動的/静的にグルーピングできる。
- Intune, AutoPilotともに何かしらの設定を適用させるためにはAzure ADのグループ単位で割り当てる
AutoPilotのライセンス要件
Azure ADテナントのユーザーに対して必要なライセンスを割り当てる必要があります
ライセンスがない状態でAutoPilotによるキッティングを実行するとエラーになり、AutoPilotによるキッティングに失敗します
また、AutoPilotの構成画面はIntune(MEM admin center)の中に存在するので実質的にはIntuneの機能の一部というイメージであり、IntuneのライセンスがないとAutoPilotの構成画面までたどり着けません
つまりAutoPilotを使うためにはIntuneのライセンスが必要になるということです
Intuneのライセンスに関するドキュメントを確認してください
ライセンス要件を満たしたら早速構成手順に入っていきます。
Azure ADの構成手順
まず初めにAzure ADテナントでIntuneを有効化する必要があります。
Intuneにはデバイスを管理するMDMの機能、アプリケーションを管理するMAMの機能があるのでAzure ADの画面からどのスコープに対して有効化するか選択します
ちなみにデバイスに対してアプリケーションを配布する機能はMDMの機能の一部です
MDMとMAMの設定
-
Azure ADの「モビリティ (MDM および MAM)」にアクセスし、「Microsoft Intune」を選択
- 「MDM ユーザー スコープ」と「MAM ユーザー スコープ」で「すべて」を選択して保存
- 同様に「Microsoft Intune Enrollment」でも「MDM ユーザー スコープ」で「すべて」を選択して保存
会社のブランドを構成する(必須ではない)
なぜ会社のブランドを構成する必要があるのか
会社のブランドは必須の設定ではありませんが、AutoPilotを運用する上でのメリットがあるので設定することをお勧めします(多くの組織ではすでに登録されているとは思います)
この設定をすることによってWindows 10のOOBE画面で「テナント名〇〇へようこそ」と表示されるようになります。「テナント名〇〇」はAzure ADテナントのプロパティから取得されます[1]
表示されていることを確認すれば「HWIDの登録」「デプロイプロファイルの割り当て」が完了していることがわかるので、その端末にログインするユーザーにライセンスが適切に割り当てられていればAutoPilotはまず失敗しません。
会社のブランドを構成することによって問い合わせや個別対応を減らすことができるので特に理由がなければ設定してしまいましょう。
蛇足
「テナント名〇〇へようこそ」と表示されないままユーザーがログインしてプロファイルが作成されてしまうと、再度AutoPilotをさせるためには初期化して最初からやり直す必要が出てしまいます。
初期化しないにしても手動でAzure AD joinしてもらう必要が出るので管理者もユーザーも対応が面倒です。(手動でのAzure AD joinでも間違えてAzure AD Registeredになってしまう可能性すらあります。。)
これを回避するためには、下記を検討するとよいかもしれません。
- 運用でカバーする
- AutoPilotの事前プロビジョニング(旧称White Glove OOBE)を使ってAutoPilotの成功を確認してからサインインしてもらう
- OEMから直接ユーザーの手元に郵送してもらう(HWIDもOEMに登録してもらう)
会社のブランドを構成する手順
-
Azure ADテナントの「会社のブランド」にて「構成」を選択
- 記載されている要件に従った画像ファイルをそれぞれ登録して保存。(すべて登録する必要はなく、バナーロゴだけでも問題ありません)
- 構成完了すると「Default」というブランド設定が表示されます
全てのAutoPilotデバイスが自動的に参加する動的グループを作成する
AutoPilot, Intune, Azure AD どれを使うにしてもグループ単位で管理する必要があります
アプリやスクリプトを配りたいとなった際に必ず役に立つので作成した方が良いです[2]
今回は例として全ての Autopilot デバイスを含むグループ「ALL AutoPilot Devices」を作成します
- Azure ADの新しいグループ作成画面にアクセス
- 「メンバーシップの種類」に「動的デバイス」を選択
- 「動的クエリの追加」を選択(他は任意の値を入力)
- 「規則の構文」に「(device.devicePhysicalIDs -any (_ -contains "[ZTDId]"))」を入力し「OK」を選択
- 「保存」を選択
- 「作成」を選択
- グループが作成されました
蛇足
公式ドキュメントにその他にも動的メンバーシップ ルールの決まり文句が紹介されています
-
全ての Autopilot デバイスを含むグループを作る場合
「(device.devicePhysicalIDs -any (_ -contains "[ZTDId]"))」と入力します。 -
特定のグループタグ(Azure AD デバイスの OrderID)を持つ Autopilot デバイスを含むグループを作る場合
「(device.devicePhysicalIds -any (_ -eq "[OrderID]:<任意>"))」と入力します。 -
特定の注文書 ID を持つ Autopilot デバイスを含むグループを作る場合
「(device.devicePhysicalIds -any (_ -eq "[PurchaseOrderId]:<任意>"))」と入力します。
デバイスの「グループタグ」「注文書 ID」を確認する方法
「Windows AutoPilot デバイス」で確認ができます
-
Intune(MEM admin center)にアクセス
- [ホーム] - [デバイス] - [デバイスの登録]にアクセスして[デバイス]を選択
- [Windows AutoPilot デバイス]に推移するので任意のデバイスを選択すると、画面右側にデバイスの情報が表示され「グループタグ」「注文書 ID」も表示されます
管理者が記載できるプロパティは「デバイス名」「グループタグ」のみです
「デバイス名」に任意の文字列を記載することで、AutoPilotキッティング時に端末で設定されるデバイス名を指定できます[3]
Intuneの構成手順
Windows AutoPilot Deploymentプロファイルを作成する
AutoPilot Deploymentプロファイルによって、Out-of-box experience (OOBE)の表示内容、
Azure ADへの参加の種類、事前プロビジョニングを許可するか、デバイス名をテンプレートに置き換えるかなどを設定可能です。
各設定ついては要件に合わせて設定してください。
割当先のデバイスはグループで指定可能です。今回は事前に作成した動的グループ「ALL AutoPilot Devices」を選択します[4]
- [Intuneホーム] - [デバイス] - [デバイスの登録]にアクセスして[デプロイプロファイル]を選択
- 「プロファイルの作成」を選択し、「Windows PC」を選択
- 任意の名前を入力し、「すべての対象デバイスを Autopilot に変換する」で「はい」を選択
- OOBEの設定は要件に合わせて設定し「次へ」を選択(AutoPilotの事前プロビジョニング(旧称White Glove OOBE)を使用する場合は「事前プロビジョニングされたデプロイを許可する」で「はい」を選択)
- 「グループを追加」から「ALL AutoPilot Devices」を選択して「次へ」を選択
- 最後に設定内容を確認して「作成」を選択
- プロファイルが表示されます
AutoPilotの構成手順
デバイスのHWIDを取得する
AutoPilotデバイスとして登録させるためには対象のデバイスからHWIDと呼ばれるハードウェアを識別するための値をCSVとして取得し、インポートする必要があります
HWIDの取得方法は複数あり、ベンダーにもらう方法、ベンダーから直接Intuneにインポートしてもらう方法、自分でスクリプトを実行して取得する方法などがあります
今回はPowerShellスクリプトを実行して取得する方法を使用します
コマンドはドキュメントのものをコピペで実行するだけでC:\HWID\AutoPilotHWID.csv
に出力されます(モジュールをダウンロードしているのでインターネット接続必須です)
都度都度コピペして実行するのも面倒なのでUSBメディアに下記のスクリプトを置いて置き、出力先をカレントディレクトリにしておけば便利だと思います
やっていることとしてはGet-WindowsAutoPilotInfo
の実行結果をCSVとして出力しているだけです
New-Item -Type Directory -Path "C:\HWID"
Set-Location -Path "C:\HWID"
$env:Path += ";C:\Program Files\WindowsPowerShell\Scripts"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Install-Script -Name Get-WindowsAutoPilotInfo
Get-WindowsAutoPilotInfo -OutputFile AutoPilotHWID.csv
実行例
AutoPilotHWID.csv
の中身はシンプルで、3列2行しかありません
列は「Device Serial Number」「Windows Product ID」「Hardware Hash」の3列のみです
AutoPilotHWID.csv
2行目の文字列を1つのCSVに追記することで1度に大量のデバイスをAutoPilotデバイスとして登録することが可能です[5]
AutoPilotさせたいデバイスを登録する
上記で取得したHWIDをAutoPilotにインポートします
-
Intune(MEM admin center)にアクセス
- [ホーム] - [デバイス] - [デバイスの登録]にアクセスして[デバイス]を選択
-
登録画面に推移します
この画面に既に登録済みのAutoPilotデバイスがすべて表示されています
- [インポート]を選択
- 取得したHWID(CSV)を選択して[インポート]を選択
ここでファイルのチェックもしてくれるのでフォーマットが異なるCSVをインポートしようとするとエラーになります
- 登録処理が始まります
台数にもよりますが完了まで2, 3分~10分程度かかります - デバイスが表示されて「プロファイルの状態」が「割り当て済み」となっていれば準備は完了です[6]
補足
HWIDをインポートするとIntune上にデバイスが表示されてきそうな気がしますが、表示はされません
なぜならAutoPilotによるキッティング中の処理によってIntuneにデバイスが登録されるのでこの段階ではIntuneに登録されていないからです
しかし、ややこしい点としてHWIDをインポートした時点でAzure AD上にはデバイスが表示されます
Azure AD上でシリアルナンバーで検索すればデバイスが確認できるかと思います
既にAzure AD上にAzure AD join または Azure AD registered として存在するデバイスの場合はアイコンが紫色に変わります。
実際の動作
ではここまでの構成手順がすべて完了していることを前提に、PCをAutoPilotキッティングしてみます。
実際の画面はWindows 10か11か、PCが指紋認証に対応しているか顔認証に対応しているか、すでに多要素認証の方法が登録されているかいないか、パスワード変更が促されるかされないか、などによって表示される内容が変わります。動作の流れをなんとなくで把握してもらえれば幸いです
例として使用した画像のPCはあらかじめWindowsの設定の回復オプションからのリセットで初期化しています。
ライセンスを持っているユーザーアカウントでサインインします
これで想定通りデバイスのAutoPilotによるキッティングが完了しました。
デバイスは正常にAzure AD joinしており、
Intuneにも登録されています
おわりに
長々と画像を大量に張って説明してきましたが、UIはすぐに変更されやすく、動作も日々変更されていますのですぐに役に立たなくなる可能性も高いです。
しかし、大まかな流れは変わらないと思いますのでぜひ運用の参考にしていただければと思います。
-
Windows 11では「テナント名〇〇へようこそ」と表示されなくなりました。会社のブランドで登録したバナー画像は表示されるのでそれで同様の判別は可能です ↩︎
-
動的グループにはAAD P1ライセンスが必要です ↩︎
-
AutoPilot Deploymentプロファイルでデバイス名のテンプレートを適用していた場合はテンプレートが優先されます ↩︎
-
Intune組み込みのグループとして「すべてのデバイス」を選択することも可能です ↩︎
-
PCベンダーからHWIDをいただくと、購入したPC全台の情報が1つのCSVにまとまった状態でもらえるのでインポートは1回で済んだりします ↩︎
-
ここで「プロファイルの状態」が「更新中」や「未割り当て」だとAutoPilotによるキッティングに失敗します。台数が多かったりすると15分20分かかることもあるので気長に待ちましょう ↩︎
Discussion