このページの本文へ

FIXER cloud.config Tech Blog

Microsoft IntuneをPowerShellで操作する

2020年08月28日 11時00分更新

文● 神守 広介/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 Intune、使っていますか?

 GUI、使いやすいですか?

 個人的には結構お世話になっているAzure PortalのIntuneの画面ですが、この画面の操作について、PowerShellでも操作をすることができます。

 PowerShellが使えるようになると、色々とハッピーなポイントがありますので是非お試し下さい。

 想定している読者層はこちらです。

・Intuneを利用している社内SE(Intune管理者ロールを持っている人)
・Azure Portal(Microsoft Endpoint Management)上の操作をPowerShellで実現したい人

※追記:ステップ①-2、①-4の実行コマンドを修正いたしました(2020年9月18日)。

環境構築編

ステップ① PowerShellモジュールのセットアップ

1. 管理者権限でPowerShellを起動
2. モジュール確認(1回目)


Get-Module -ListAvailable -Name Microsoft.Graph.Intune|select Version,Name

インストールされていない場合は何も出力されません

 インストール済みだった場合は、そのままステップ②に進んで下さい。

3. モジュールインストール


Install-Module -Name Microsoft.Graph.Intune

インストールコマンドを実行、出力はありません

4. モジュール確認(2回目)

モジュールが追加されたことを確認


Get-Module -ListAvailable -Name Microsoft.Graph.Intune|select Version,Name

インストールされたモジュールとして検索で見つけられた

ステップ② Azure ADの権限の設定する

 Azure ADの管理者に依頼してIntune管理者の権限を取得します。

Azure AD:ロールと管理者画面

ステップ③ PowerShellでIntuneを参照するために接続する

 Intuneで管理している情報にアクセスするため、下記のコマンドを実行します。 コマンド実行時にIntuneにアクセスするユーザーの認証が求められます。


Connect-MSGraph

ユーザー認証画面

ログインユーザーとテナントのIDが正しく表示されれば認証成功です

 資格情報を使用してサインインし、MSGraphの承認を求められたら[同意する]をクリックします (承認を求められるのは最初の1度だけです)。

実践編

Intuneの機能を使ってみる①(GUIでもできること)

Ⅰ. Intuneで管理しているデバイスの中から所有権が個人になっているデバイスを検索する

 下記のように、フィルター条件に所有権(managedDeviceOwnerType)が個人のものを指定すると、所有権が個人のデバイス名が表示されます。


Get-IntuneManagedDevice -Filter "(managedDeviceOwnerType eq 'personal')" -Select deviceName

どっさり出てきました…

Intuneの機能を使ってみる②(GUIではできないこと)

Ⅰ. 複合条件を指定した検索を行なう

 Intuneで管理されているデバイスは、CUI上ではIntuneManagedDeviceやmanagedDeviceなどと表記されています。

 大量のデバイスのうち参照したい対象を抽出する際に、GUIではよく利用される項目に条件をつけて抽出が出来ます(これで基本的には十分)。

 さらにフィルタした結果から、検索バーを利用してシリアル番号やUPNなどの情報から検索することができます。

※MSあるあるの先頭文字マッチ検索「以外」にも対応しているのが素晴らしいです

Microsoft Endpoint Managerのデバイスの検索UI

 しかしGUI上に無い、ニッチな条件で端末を探す際はPowerShellコマンドが優れています。

 例えばOSバージョンとOSのバージョンを指定した検索の場合はこのように実行できます。


Get-IntuneManagedDevice |?{$_.osVersion -gt '10.0.18363.99999' -and $_.operatingSystem -eq "Windows"}|select deviceName

検索コマンド実行結果

 上記の様に複数条件を入力してかゆいところに手が届く検索が実行できます! その他のデバイスの属性情報を確認したい場合はこちらのサイトを参照して下さい。

Ⅱ. 検索で取得したデバイスに対して一括処理を実施する

MS Learnより引用

 Azure portal では、利用可能なさまざまなAzureオファリングの検索、インストール、およびアクセスを行うための便利なユーザー インターフェイスが提供されます。しかし、これらのタスクの一部は 反復的であり、コマンドライン対応インターフェイスを使用した自動化の候補であることがわかります。

 本記事で一番やりたかったことです!

 Azure Portal(またはMEM)上でデバイスの情報を更新する場合、1デバイス毎に詳細画面を開いて更新作業を行なう必要がありますが、PowerShellであれば一括で実施出来ます。 例えば特定条件を満たす端末に対してデバイスの所有権(managedDeviceOwnerType)を一括更新など実施できます。

Ⅲ- サンプル

1. OSがWindows、デバイスカテゴリーが企業管理端末、デバイスの所有権が個人になっている端末を検索


Get-IntuneManagedDevice |?{ $_.operatingSystem -eq "Windows" -and $_.deviceCategoryDisplayName -eq "企業管理端末" -and $_.managedDeviceOwnerType -ne "company"}|select deviceName,deviceCategoryDisplayName,managedDeviceOwnerType

deviceCategoryとmanagedDeviceOwnerTypeが矛盾している

2. 1で抽出された対象の端末のデバイスの所有権をcompanyをに更新する

※更新処理が入っております。

 検証で下記コマンドを実行する場合は条件を追加して、業務に影響の無い対象に絞ってからコマンドを実行して下さい。


Get-IntuneManagedDevice |?{ $_.operatingSystem -eq "Windows" -and $_.deviceCategoryDisplayName -eq "企業管理端末" -and $_.managedDeviceOwnerType -ne "company"}|Update-IntuneManagedDevice -managedDeviceOwnerType company

パイプを繋いでUpdateコマンドを実行

3. 更新結果を確認する


Get-IntuneManagedDevice |?{ $_.operatingSystem -eq "Windows" -and $_.deviceCategoryDisplayName -eq "企業管理端末" }

デバイス名は事前に変数などに控えておいたほうが結果の確認が容易になります

おわり

 どなたかの参考になれば幸いです!

FIXER Inc. 神守 広介

 株式会社FIXERにてCorporate IT業務をエンジョイしてます。

[転載元]
 IntuneをPowerShellで操作する

カテゴリートップへ