Microsoft 365

ゲストユーザーの最終サインイン日時取得 – Graph PowerShell SDK 利用

  • 2023.05.25

前回 [Graph PowerShell SDK を利用して Teams のチーム作成を制限する] にて、Azure AD PowerShell のコマンドを Microsoft Graph PowerShell SDK に置き換えた内容をご紹介しましたが、今回も同様に Graph PowerShell の内容です。

最近アクセスしていないゲストユーザーを把握し、ゲストユーザーの棚卸しにつなげられるよう、ゲストユーザーの最終サインイン日時を取得する方法をご紹介します。これは MSOnline や AAD PowerShell ではできなかった操作ですね。

Microsoft Graph へ接続

  1. Microsoft Graph に接続します。このとき情報の取得に必要なアクセス権を指定します。
    【今回の作業に必要な権限】
    • ユーザーの読み取りと書き込み
    • 監査ログの読み取り
    Connect-MgGraph -Scopes "User.ReadWrite.All", "AuditLog.Read.All"
  2. 管理者アカウントとパスワードを入力し 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 をご紹介したいと思います。

 

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 内の情報を保護するために必要な基本知識や利用すべき機能、および利用方法を解説します。

お問い合わせ

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

担当者に相談する