ユーザーのプロパティ情報を取得 – Graph PowerShell SDK 利用
組織変更や部署の異動などにより、部署や役職、事業所などのユーザーアカウント情報を更新したとき、正しく反映しているかを確認したいところですが、 1 ユーザーずつ確認するのは大変です。そのような時は Microsoft Graph PowerShell SDK を利用して出力して確認を行いましょう。
Microsoft Graph への接続
- Microsoft Graph に接続します。このとき、情報の取得に必要なアクセス権限を指定します。
【今回の作業に必要な権限】
・すべてのユーザー情報の読み取り
・組織のディレクトリ情報の読み取りConnect-MgGraph -Scope “User.Read.All”,"Directory.Read.All"
- 管理者アカウントとパスワードを入力し Microsoft 365 にサインインしてください。
サインイン後、要求されているアクセス許可画面が表示された場合、[承諾] をクリックします。
※ 「組織の代理として同意する」 にはチェックを入れないでください。チェックを入れると、組織のすべてのユーザーに同じアクセス許可が割り当てられます。
ユーザーのプロパティ情報の取得
今回は、組織ユーザーの以下の情報を取得します。
- 表示名 (DisplayName)
- ユーザープリンシパル名 (UserPrincipalName)
- 部署 (Department)
- 役割 (JobTitle)
- 事業所 (OfficeLocation)
組織のユーザー情報を表示
- 取得するユーザープロパティ情報を変数に格納します。
$props = "DisplayName","UserPrincipalName","UserType","Department","JobTitle","OfficeLocation","GivenName"
- 組織のユーザーアカウントの情報を取得します。
Get-MgUser -All -Property $props | Where-Object {($_.UserType -eq "Member") -and ($_.GivenName -ne $null)}| Select-Object $props
なお、組織のユーザーアカウントのみを取得するために Where-Object でフィルタリングを行っています。
- 組織のユーザーアカウントのみ取得する (ゲストユーザーが含まれないようにする)
$_.UserType -eq “Member” - 姓が登録されていないアカウントをリソースや共有メールボックスとみなして除外する
$_.GivenName -ne $null
組織のユーザー情報を PC に csv ファイルとしてエクスポート
※ ファイルパスは適宜変更してください。
#ファイル保存先の登録
$OutputFilePath = "C:\PowerShell\UserpropertiesList.CSV"
#CSV のヘッダー
$header ="表示名,UPN,部署,役職,事業所"
$header | out-file $OutputFilePath -encoding UTF8 -append
$props ="DisplayName","Mail","UserPrincipalName","UserType","Department","JobTitle","OfficeLocation","GivenName"
$User = Get-MgUser -All -Property $props | Where-Object {($_.UserType -eq "Member") -and ($_.GivenName -ne $null)}| Select-Object $props
foreach($Users in $User)
{
$DisplayName = $Users.DisplayName
$UPN = $Users.UserPrincipalName
$Department = $Users.Department
$JobTitle = $Users.JobTitle
$OfficeLocation = $Users.OfficeLocation
$TXT = "$DisplayName,$UPN,$Department,$JobTitle,$OfficeLocation"
$TXT | out-file $OutputFilePath -encoding UTF8 -append
}
作業完了後、Microsoft Graph との接続を切断します。Disconnect-MgGraph
Microsoft Graph PowerShell SDK を利用することで、自分が欲しい情報だけを取得できるだけでなく、実行したコマンドレットを保存しておくことで、いつでも同じ条件の情報を取得することができます。
Microsoft 365 の運用管理を行う上で、このようなコマンドレットを多く用意しておくと作業効率 UP につながると思うので、引き続き、役に立つ Microsoft Graph PowerShell をご紹介したいと思います。
関連コース
- CI505-H Microsoft 365 運用管理
Microsoft 365 の運用管理に必要な知識と設定すべき項目を理解いただけます。アカウントやデバイス管理に不可欠な Entra ID の基礎知識をはじめ、Exchange Online、Microsoft Teams、SharePoint Online、OneDrive for Business など各サービスにおいて実施すべき設定と推奨設定、理解しておきたい仕組みなど、運用管理に必要な内容を基本から実務レベルまで解説。 - CI509-H Microsoft 365 デバイス運用管理
IT 担当者を対象に、安全なモバイルワークを実現する第一歩である Microsoft 365 でのデバイスの管理や運用手法について解説。デバイスの安全性を高めるために Microsoft Entra ID や Microsoft Intune により、OS のバージョン管理、利用可能とするアプリの許可、接続するネットワークの制限、デバイスの盗難や紛失、退職者のデバイスを正しく管理する方法などを解説します。iPhone を使用した実習を行い、モバイル デバイスの管理方法について実際の挙動を確認しながら、さまざまな機能を理解。 - CI506-H Microsoft 365 運用管理 – 情報保護編
Microsoft Defender、Microsoft Purview、Microsoft Entra ID を活用したセキュリティおよびコンプライアンス対策に加え、注目を集める Microsoft 365 Copilot の運用管理など、Microsoft 365 全体の情報保護に関する機能・利用シーン・運用のポイントを具体的に解説。 - CI508-H Microsoft 365 PowerShell による管理効率化
Microsoft 365 に対する運用管理で PowerShell を利用するための基本や Exchange Online、SharePoint Online、Microsoft Teams を設定するための便利なコマンドライン、設定を自動化するためのスクリプトの作成方法など、PowerShell による Microsoft 365 管理の基本から必須スキルまでを、運用管理に活用できるサンプルを用いて解説。