PowerShell を使用して Microsoft 365 ユーザー アカウントをブロックする

この記事は、Microsoft 365 Enterprise および Office 365 Enterprise の両方に適用されます。

Microsoft 365 アカウントへのアクセスをブロックすると、Microsoft 365 organization内のサービスとデータにサインインしてアクセスするアカウントを誰も使用できなくなります。 PowerShell を使用して、個々のユーザー アカウントまたは複数のユーザー アカウントへのアクセスをブロックできます。

個々のユーザー アカウントへのアクセスをブロックする

注:

Azure Active Directory モジュールは、Microsoft Graph PowerShell SDK に置き換えられます。 Microsoft Graph PowerShell SDK を使用して、すべての Microsoft Graph API にアクセスできます。 詳細については、「Microsoft Graph PowerShell SDK の使用を開始する」 を参照してください。

まず、Microsoft 365 テナントに接続します

ユーザー アカウントのブロックとブロック解除には、User.ReadWrite.All アクセス許可スコープ、または参照ページの [サブスクライブ済みSkus の一覧表示] に一覧表示されている他のアクセス許可のいずれかが必要Graph API。

Connect-Graph -Scopes User.ReadWrite.All

個々のユーザー アカウントをブロックするには、次の構文を使用します。

$params = @{
	accountEnabled = $false
}
Update-MgUser -UserId <sign-in name of the user account> -BodyParameter $params

注:

Update-MgUser コマンドレットの -UserId パラメーターは、アカウントのサインイン名 (ユーザー プリンシパル名とも呼ばれます) またはアカウントのオブジェクト ID を受け取ります。

次の使用例は、ユーザー アカウントへのアクセスをブロックします fabricec@litwareinc.com

$params = @{
	accountEnabled = $false
}
Update-MgUser -UserId "fabricec@litwareinc.com" -BodyParameter $params

このユーザー アカウントのブロックを解除するには、以下のコマンドを実行します。

$params = @{
	accountEnabled = $true
}
Update-MgUser -UserId "fabricec@litwareinc.com" -BodyParameter $params

ユーザーの表示名に基づいてユーザー アカウント UPN を表示するには、次のコマンドを使用します。

$userName="<display name>"
Write-Host (Get-MgUser -All | where {$_.DisplayName -eq $userName}).UserPrincipalName

次の使用例は、ユーザー Caleb Sills のユーザー アカウント UPN を表示します。

$userName="Caleb Sills"
Write-Host (Get-MgUser -All | where {$_.DisplayName -eq $userName}).UserPrincipalName

ユーザーの表示名に基づいてアカウントをブロックするには、次のコマンドを使用します。

$userName="<display name>"
$user = Get-MgUser -Filter "displayName eq '$userName'"
$params = @{
	accountEnabled = $false
}
Update-MgUser -UserId $user.Id -BodyParameter $params

ユーザー アカウントのブロック状態をチェックするには、次のコマンドを使用します。

Get-MgUser -ObjectID <UPN of user account> -Property "displayName,accountEnabled" | Select displayName, accountEnabled

複数のユーザー アカウントをブロックする

複数のユーザー アカウントのアクセスをブロックするには、次のように各行に 1 つのアカウント サインイン名を含むテキスト ファイルを作成します。

akol@contoso.com
tjohnston@contoso.com
kakers@contoso.com

次のコマンドでは、テキスト ファイルの例は C:\My Documents\Accounts.txtです。 このファイル名を、テキスト ファイルのパスとファイル名に置き換えます。

テキスト ファイルに記載されているアカウントへのアクセスをブロックするには、次のコマンドを実行します。

$params = @{
	accountEnabled = $false
}
Get-Content "C:\My Documents\Accounts.txt" | ForEach {Update-MgUser -UserId $_ -BodyParameter $params}

テキスト ファイルに一覧表示されているアカウントのブロックを解除するには、次のコマンドを実行します。

$params = @{
	accountEnabled = $true
}
Get-Content "C:\My Documents\Accounts.txt" | ForEach {Update-MgUser -UserId $_ -BodyParameter $params}

関連項目

Microsoft 365 ユーザー アカウント、ライセンス、PowerShell を使用したグループを管理する

PowerShell で Microsoft 365を管理する

Microsoft 365 用 PowerShell の使用を開始する