Microsoft 365

ユーザーのプロパティ情報を取得 – Graph PowerShell SDK 利用

  • 2024.03.25

組織変更や部署の異動などにより、部署や役職、事業所などのユーザーアカウント情報を更新したとき、正しく反映しているかを確認したいところですが、 1 ユーザーずつ確認するのは大変です。そのような時は Microsoft Graph PowerShell SDK を利用して出力して確認を行いましょう。

Microsoft Graph への接続

  1.  Microsoft Graph に接続します。このとき、情報の取得に必要なアクセス権限を指定します。
    【今回の作業に必要な権限】
    ・すべてのユーザー情報の読み取り
    ・組織のディレクトリ情報の読み取り
    Connect-MgGraph -Scope “User.Read.All”,"Directory.Read.All"
  2.  管理者アカウントとパスワードを入力し Microsoft 365 にサインインしてください。
    サインイン後、要求されているアクセス許可画面が表示された場合、[承諾] をクリックします。

    ※ 「組織の代理として同意する」 にはチェックを入れないでください。チェックを入れると、組織のすべてのユーザーに同じアクセス許可が割り当てられます。

ユーザーのプロパティ情報の取得

今回は、組織ユーザーの以下の情報を取得します。

  • 表示名 (DisplayName)
  • ユーザープリンシパル名 (UserPrincipalName)
  • 部署 (Department)
  • 役割 (JobTitle)
  • 事業所 (OfficeLocation)

組織のユーザー情報を表示

  1.  取得するユーザープロパティ情報を変数に格納します。
    $props = "DisplayName","UserPrincipalName","UserType","Department","JobTitle","OfficeLocation","GivenName"


  2.  組織のユーザーアカウントの情報を取得します。
    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 をご紹介したいと思います。

Microsoft 365 管理者向けコース

  • CI505-H Microsoft 365 運用管理
    Microsoft 365 の運用管理において必要となる知識を習得し、行うべき設定項目を理解いただけます。アカウントやデバイス管理の必須となる Azure AD に対する必須知識から、Exchange Online、Microsoft Teams、SharePoint Online、OneDrive for Business などの各サービスに対して行うべき設定、推奨される設定、理解しておきたいしくみなど、運用管理に必要となる内容を基本から、運用にもとめられるレベルまで解説します。また入退社や人事異動への対応方法、監査ログや検疫といったセキュリティ・コンプライアンス対策のために行うべきこともあわせてご紹介します。
  • CI506-H Microsoft 365 デバイス管理
    Azure AD や Microsoft Intune を利用したデバイスの登録や管理、アプリの配布、デバイス情報を利用したセキュリティ対策など、デバイス管理手法を解説します。管理デバイスにおける Microsoft 365 利用時のセキュリティ対策など、よりセキュアな環境で作業ができるように行うべき内容をあわせてご紹介します。実機 (iPhone をご用意) を使用した実習が含まれているためモバイルデバイスの管理方法について実際にハンズオンにて動作を確認しながらご理解いただけます。
  • CI507-H Microsoft 365 情報保護とコンプライアンス
    Microsoft 365 の管理者を対象に、ファイルやメール、チームといった Microsoft 365 内の情報を保護するために必要な基本知識や利用すべき機能、および利用方法を解説します。
  • CI508-H Microsoft 365 PowerShell による管理効率化
    Microsoft 365 に対する運用管理で PowerShell を利用するための基本や Exchange Online、SharePoint Online、Microsoft Teams を設定するための便利なコマンドライン、設定を自動化するためのスクリプトの作成方法など、PowerShell による Microsoft 365 管理の基本から必須スキルを運用管理で利用できるサンプルをもちいて解説します。また、今後利用が推奨される Microsoft Graph PowerShell SDK の利用方法もあわせて解説します。

お問い合わせ

イルミネート・ジャパンが提供するトレーニングやサービスに関するご相談など、
お気軽にご連絡ください。

担当者に相談する