Microsoft Graph PowerShell SDK を使用した Azure AD 登録済みデバイスの拡張属性の更新
登録済みデバイスと Azure AD
マイクロソフトによると、 Azure AD 登録済みデバイス (職場参加端末)は「を使用して、自分のデバイスの持ち込み (BYOD) またはモバイル デバイスのシナリオのサポートをユーザーに提供します。これらのシナリオでは、ユーザーは個人用デバイスを使用して組織のリソースにアクセスできます。."個人的には、私は長年にわたって登録されたデバイスにあまり注意を払っていません。他のトピックは私の時間を占め、組織がデバイスを管理できるようにするために参加プロセスを経ることを除いて、それらの存在を無視しました。
デバイスは、Azure AD 管理センターで独自の領域を占有します (図 1)。各デバイスに表示される詳細は、次の場合に収集されたものです。 デバイスが Azure AD に登録されます.これは、Windowsによって生成されたファンキーなデフォルトのデバイス名の一部を占めています。Azure AD では、O/S アップグレードの詳細を含むデバイス レコードは更新されないため、デバイスの多くは、Windows 11 を取得してからずっと経っているときに Windows 10 を実行しているように見えます。Azure AD 管理センターは、主に デバイス ID の整理これは、ディレクトリから期待されるものです。

Azure AD 登録済みデバイスの拡張属性の設定
いずれにせよ、Exchange 管理者がカスタム属性を使用してメールボックスをマークする方法と概念的に類似した、Azure AD に登録されているデバイスを利用する何らかの方法があるかもしれないと考えました (カスタム属性を使用して動的配布グループのメンバーシップを駆動する例を次に示します)。
これは私を デバイス用のグラフ API そのページの拡張属性の使用に関するメモがあります。組織が一般的に使用する Azure AD 拡張属性 をクリックして、ユーザーオブジェクトに関する追加情報を格納します。また、デバイス オブジェクトでも使用でき、拡張属性を使用して、管理者がデバイスを使用しているユーザーを知るのに役立つ情報を格納できると便利です。15 の拡張属性 (ExtensionAttribute1 から ExtensionAttribute15) を使用できます。
登録済みデバイスのエントリをより便利にするために拡張属性を使用することは理にかなっているように思われました。私は、拡張属性の6つに、デバイスを登録したユーザーに関する情報を入力することにしました。登録された所有者がデバイスを使用する人物であることは必ずしも当てはまりませんが、特にBYODシナリオでは、そうである可能性が高いです。
この理論をテストするために、Microsoft Graph PowerShell SDK を使用して次のスクリプトを作成しました。
- で登録されているすべてのデバイスを検索します。 Get-MgDevice コマンドレット。
- デバイスごとに、所有者の Azure AD アカウントの識別子を抽出します。これは、デバイス レコードに奇妙な方法で格納されます (少なくとも、Microsoft は識別子の検索と使用をはるかに簡単にすることができます)。
- [Get-MgUser コマンドレットを使用して、Azure AD に対して識別子をチェックし、一致が成功した場合にユーザーの詳細を取得します。ユーザーが Azure AD にいなくなった場合、またはそのアカウントが別のテナントに属している場合 (Azure AD はゲスト ユーザーのデバイスを登録できます)、ルックアップは失敗します。
- 走る アップデート-マグネシウムデバイス アカウントが一致したときに拡張属性を設定します。
Connect-MgGraph -Scopes "Directory.AccessAsUser.All" Select-MgProfile Beta [array]$Devices = Get-MgDevice -All ForEach ($Device in $Devices) { If ($Device.PhysicalIds.count -gt 0) { Foreach ($X in $Device.PhysicalIds) { If ($X.SubString(0,10) -eq "[USER-GID]") { $UserGuid = $X } } $UserId = $UserGuid.substring(11,36) If ($UserId) { #We found a user identifier - try to resolve it against Azure AD [array]$User = Get-MgUser -UserId $UserId -ErrorAction SilentlyContinue } If ($User) { # Found a user in Azure AD Write-Host ("Device {0} owned by {1}" -f $Device.DisplayName, $User.DisplayName) $Attributes = @{ "extensionAttributes" = @{ "extensionAttribute1" = $User.DisplayName "extensionAttribute2" = $User.UserPrincipalName "extensionAttribute3" = $User.MobilePhone "extensionAttribute4" = $User.Department "extensionAttribute5" = $User.City "extensionAttribute6" = $User.Country } } | ConvertTo-Json Update-MgDevice -DeviceId $Device.Id -BodyParameter $Attributes } Else { Write-Host ("Device {0} owned by unknown user {1}" -f $Device.DisplayName, $UserId ) } } # End If Device PhysicalsId } #End Foreach
Azure AD 登録済みデバイスの拡張機能属性の使用
デバイス属性を設定すると、その値は Azure AD 管理センターから利用できるようになります (図 2)。

さらに良いことに、拡張属性に対してフィルターを適用して、デバイスのサブセットを簡単に見つけることができます。この例では、extensionAttribute6 の値が “アイルランド" であるすべてのデバイスを見つけます。
[array]$IrelandDevices = Get-MgDevice -Filter "extensionAttributes/extensionAttribute6 eq 'Ireland'" -CountVariable IrelandCount -ConsistencyLevel eventual
すべてのカスタム属性
Intune のようなデバイス管理ソフトウェアを実行しているユーザーでも、PowerShell を使用して登録済みデバイスにカスタム値を割り当てることができることに価値を見出す可能性があります。可能性は無限大です。少なくとも、それは私が聞いたことです。
Azure AD と PowerShell の活用については、 Office 365 for IT プロフェッショナル 電子ブック。Microsoft の経験を活かして、何が重要で、テナントを保護する最善の方法を理解してください。
ディスカッション
コメント一覧
まだ、コメントがありません