ゲストユーザーの最終サインイン日時取得 – Graph PowerShell SDK 利用
前回 [Graph PowerShell SDK を利用して Teams のチーム作成を制限する] にて、Azure AD PowerShell のコマンドを Microsoft Graph PowerShell SDK に置き換えた内容をご紹介しましたが、今回も同様に Graph PowerShell の内容です。
最近アクセスしていないゲストユーザーを把握し、ゲストユーザーの棚卸しにつなげられるよう、ゲストユーザーの最終サインイン日時を取得する方法をご紹介します。これは MSOnline や AAD PowerShell ではできなかった操作ですね。
Microsoft Graph へ接続
- Microsoft Graph に接続します。このとき情報の取得に必要なアクセス権を指定します。
【今回の作業に必要な権限】- ユーザーの読み取りと書き込み
- 監査ログの読み取り
Connect-MgGraph -Scopes "User.ReadWrite.All", "AuditLog.Read.All"
- 管理者アカウントとパスワードを入力し Microsoft 365 にサインインしてください。
サインイン後、要求されているアクセス許可画面が表示された場合、[承諾] をクリックします。
「組織の代理として同意する」 にはチェックを入れないでください。チェックを入れると、組織のすべてのユーザーに同じアクセス許可が永続的に割り当てられます。
ゲストユーザーの最終サインイン日時の取得
今回はゲストユーザーの以下の情報を取得してみます。
- ユーザープリンシパル名 (UserPrincipalName)
- 表示名 (DisplayName)
- 最終サインイン日時(LastSignIn DateTime)
- ゲストユーザーの登録日時 (CreatedDateTime)
- 最終サインイン日時、作成日時は UTC です。+ 9時間すると日本時間になります。
- ゲストユーザーが 2020 年 4 月以前や一度もサインインしていない場合は、LastSignIn DateTime の値は空白になります。
すべてのゲストユーザーを表示
Get-MgUser -Property UserPrincipalName, DisplayName, SignInActivity,
CreatedDateTime, UserType | Where-Object {$_.UserType -match "Guest"}
| select UserPrincipalName, DisplayName,
@{Name = "LastSignIn DateTime" ; Expression =
{$_.SignInActivity.LastSignInDateTime}}, CreatedDateTime
すべてのゲストユーザーをローカルに csv ファイルとしてエクスポート
※ ファイルパスは適宜変更してください。
Get-MgUser -Property UserPrincipalName, DisplayName, SignInActivity,
CreatedDateTime, UserType | Where-Object {$_.UserType -match "Guest"}
| select UserPrincipalName, DisplayName,
@{Name = "LastSignIn DateTime" ; Expression =
{$_.SignInActivity.LastSignInDateTime}}, CreatedDateTime |
Export-CSV -Path C:\Work\GuestUser_All.csv -Encoding Default
最終サインイン日時が指定した日付以前のゲスト ユーザーをcsvファイルとしてエクスポート
Get-MgUser -Property UserPrincipalName, DisplayName, SignInActivity,
CreatedDateTime, UserType | Where-Object {($_.UserType -match "Guest")
-and ($_.SignInActivity.LastSignInDateTime -le "2023-05-01T00:00:00Z")}
| select UserPrincipalName, DisplayName, @{Name = "LastSignIn DateTime" ;
Expression = {$_.SignInActivity.LastSignInDateTime}}, CreatedDateTime |
Export-CSV -Path C:\Work\GuestUser_20230501.csv -Encoding Default
作業完了後、Microsoft Graph との接続を切断します。
Disconnect-MgGraph
以上、今回も Microsoft 365 の運用管理を効率化するためにかかせない Microsoft Graph PowerShell から私が実際によく利用している内容のご紹介でした。Microsoft 365 の管理者は Microsoft Graph PowerShell を利用する機会が増えていくと思いますので、今後も運用管理に役に立つ Microsoft Graph PowerShell をご紹介したいと思います。
関連コース
- CI505-H Microsoft 365 運用管理
Microsoft 365 の運用管理において必要となる知識を習得し、行うべき設定項目を理解いただけます。アカウントやデバイス管理の必須となる Azure AD に対する必須知識から、Exchange Online、Microsoft Teams、SharePoint Online、OneDrive for Business などの各サービスに対して行うべき設定、推奨される設定、理解しておきたいしくみなど、運用管理に必要となる内容を基本から、運用にもとめられるレベルまで解説します。また入退社や人事異動への対応方法、監査ログや検疫といったセキュリティ・コンプライアンス対策のために行うべきこともあわせてご紹介します。 - CI509-H Microsoft 365 デバイス運用管理
IT 担当者を対象に、安全なモバイルワークを実現する第一歩である Microsoft 365 でのデバイスの管理や運用手法について解説します。デバイスの安全性を高めるために Microsoft Entra ID や Microsoft Intune により、OS のバージョン管理、利用可能とするアプリの許可、接続するネットワークの制限、デバイスの盗難や紛失、退職者のデバイスを正しく管理する方法などを解説します。本コースでは 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 の利用方法もあわせて解説します。