Microsoft 365サービスのセッションについて(Microsoft Graph PowerShell SDK版)

■解決方法(Graphコマンド)

Azure ADユーザーに対し、Microsoft Graph PowerShellコマンドで
「refreshTokensValidFromDateTime」属性を設定することで解決いたします。

※「refreshTokensValidFromDateTime 」の値を確認する実行コマンドは現在Microsoft社からベータ版のみ提供されており今後コマンドが変更となる可能性があります。

 

 事前準備

  1. 管理者権限にてPowerShellを起動後、以下のコマンドを実施しで、Microsoft Graph PowerShell Module およびMicrosoft Graph PowerShell Beta Module をインストールします。
    ※インストールには時間がかかる場合があります。
    Install-Module Microsoft.Graph 

    Install-Module Microsoft.Graph.Beta 
  2. Microsoft 365 へ接続します。
    Connect-MgGraph -Scopes "User.ReadWrite.All"
    ※実行後ブラウザで Microsoft 365 ログイン画面が表示されます。Microsoft 365 グローバル管理者のアカウントでログインしてください。

  3. Beta 版のGetMgUserコマンドを取得します。
    Get-Command Get-MgBetaUser

 個別設定(特定ユーザーを個別に修正する場合)

  1. 対象ユーザーの refreshTokensValidFromDateTime属性の値が空欄となっているかを確認します。
    Get-MgBetaUser -UserId "UPN of user" | select-object UserPrincipalName, refreshTokensValidFromDateTime
  2. refreshTokensValidFromDateTime属性が空欄のユーザーに属性を設定します。
    Revoke-MgUserSignInSession -UserId "UPN of user"


  3. 対象ユーザーのrefreshTokensValidFromDateTime属性に値が設定されていることを確認します。
    Get-MgBetaUser -UserId "UPN of user" | select-object UserPrincipalName, refreshTokensValidFromDateTime
  4. Microsoft365 との接続を切断します。
    Disconnect-MgGraph

 

 一括設定 (ドメインの複数ユーザーを一括修正する場合)

  1. ユーザーのリストを表示しrefreshTokensValidFromDateTime属性が空欄のアカウントを抽出します。
    ※refreshTokensValidFromDateTime属性に値が設定されているユーザーは表示されません。
    Get-MgBetaUser -All | where{ $_.refreshTokensValidFromDateTime -eq $null }

    ※対象ユーザーが存在しない場合、一括設定は不要なため 4. に記載の方法で Microsoft365 との接続を切断してください。
    ※特定ドメインのユーザーのみを対象とする場合"*@example.com" の箇所を特定ドメインに変更のうえ、下記コマンドを実施ください。
    Get-MgBetaUser -All | where{ $_.refreshTokensValidFromDateTime -eq $null } | where{ $_.UserPrincipalName -like ( "*@example.com" ) }
  2. refreshTokensValidFromDateTime属性が空のユーザーそれぞれに対し値を設定します。
    ※対象となるユーザーの数だけ、画面上で True の応答が表示されます
    foreach($user in Get-MgBetaUser -All | where{ $_.refreshTokensValidFromDateTime -eq $null }){Revoke-MgUserSignInSession -UserId $user.id}
    ※特定ドメインのユーザーのみを対象とする場合、以下のコマンドを実施ください。
    foreach($user in Get-MgBetaUser -All | where{ $_.refreshTokensValidFromDateTime -eq $null } | where{ $_.UserPrincipalName -like ( "*@example.com" ) }){Revoke-MgUserSignInSession -UserId $user.id}
  3. refreshTokensValidFromDateTime属性に値が設定されたユーザーがリストに表示されないことを確認します。
    Get-MgBetaUser -All  | where{ $_.refreshTokensValidFromDateTime -eq $null }
  4. Microsoft365 との接続を切断します。
    Disconnect-MgGraph


■補足
 

  • コマンド実行時にエラーが発生する場合

    Microsoft Graph 及び、Microsoft Graph.Beta モジュールの再インストールをお試しください。
    以下のアンインストールコマンドを行うことで環境に影響が出る場合は実施しないようご注意ください。

    Uninstall-Module -Name Microsoft.Graph -AllVersions
    Uninstall-Module -Name Microsoft.Graph.Beta -AllVersions

Microsoft 365サービスのセッションについて(Microsoft Graph PowerShell SDK版)

■解決方法(Graphコマンド)

Azure ADユーザーに対し、Microsoft Graph PowerShellコマンドで
「refreshTokensValidFromDateTime」属性を設定することで解決いたします。

※「refreshTokensValidFromDateTime 」の値を確認する実行コマンドは現在Microsoft社からベータ版のみ提供されており今後コマンドが変更となる可能性があります。

 

 事前準備

  1. 管理者権限にてPowerShellを起動後、以下のコマンドを実施しで、Microsoft Graph PowerShell Module およびMicrosoft Graph PowerShell Beta Module をインストールします。
    ※インストールには時間がかかる場合があります。
    Install-Module Microsoft.Graph 

    Install-Module Microsoft.Graph.Beta 
  2. Microsoft 365 へ接続します。
    Connect-MgGraph -Scopes "User.ReadWrite.All"
    ※実行後ブラウザで Microsoft 365 ログイン画面が表示されます。Microsoft 365 グローバル管理者のアカウントでログインしてください。

  3. Beta 版のGetMgUserコマンドを取得します。
    Get-Command Get-MgBetaUser

 個別設定(特定ユーザーを個別に修正する場合)

  1. 対象ユーザーの refreshTokensValidFromDateTime属性の値が空欄となっているかを確認します。
    Get-MgBetaUser -UserId "UPN of user" | select-object UserPrincipalName, refreshTokensValidFromDateTime
  2. refreshTokensValidFromDateTime属性が空欄のユーザーに属性を設定します。
    Revoke-MgUserSignInSession -UserId "UPN of user"


  3. 対象ユーザーのrefreshTokensValidFromDateTime属性に値が設定されていることを確認します。
    Get-MgBetaUser -UserId "UPN of user" | select-object UserPrincipalName, refreshTokensValidFromDateTime
  4. Microsoft365 との接続を切断します。
    Disconnect-MgGraph

 

 一括設定 (ドメインの複数ユーザーを一括修正する場合)

  1. ユーザーのリストを表示しrefreshTokensValidFromDateTime属性が空欄のアカウントを抽出します。
    ※refreshTokensValidFromDateTime属性に値が設定されているユーザーは表示されません。
    Get-MgBetaUser -All | where{ $_.refreshTokensValidFromDateTime -eq $null }

    ※対象ユーザーが存在しない場合、一括設定は不要なため 4. に記載の方法で Microsoft365 との接続を切断してください。
    ※特定ドメインのユーザーのみを対象とする場合"*@example.com" の箇所を特定ドメインに変更のうえ、下記コマンドを実施ください。
    Get-MgBetaUser -All | where{ $_.refreshTokensValidFromDateTime -eq $null } | where{ $_.UserPrincipalName -like ( "*@example.com" ) }
  2. refreshTokensValidFromDateTime属性が空のユーザーそれぞれに対し値を設定します。
    ※対象となるユーザーの数だけ、画面上で True の応答が表示されます
    foreach($user in Get-MgBetaUser -All | where{ $_.refreshTokensValidFromDateTime -eq $null }){Revoke-MgUserSignInSession -UserId $user.id}
    ※特定ドメインのユーザーのみを対象とする場合、以下のコマンドを実施ください。
    foreach($user in Get-MgBetaUser -All | where{ $_.refreshTokensValidFromDateTime -eq $null } | where{ $_.UserPrincipalName -like ( "*@example.com" ) }){Revoke-MgUserSignInSession -UserId $user.id}
  3. refreshTokensValidFromDateTime属性に値が設定されたユーザーがリストに表示されないことを確認します。
    Get-MgBetaUser -All  | where{ $_.refreshTokensValidFromDateTime -eq $null }
  4. Microsoft365 との接続を切断します。
    Disconnect-MgGraph


■補足
 

  • コマンド実行時にエラーが発生する場合

    Microsoft Graph 及び、Microsoft Graph.Beta モジュールの再インストールをお試しください。
    以下のアンインストールコマンドを行うことで環境に影響が出る場合は実施しないようご注意ください。

    Uninstall-Module -Name Microsoft.Graph -AllVersions
    Uninstall-Module -Name Microsoft.Graph.Beta -AllVersions