使用 PowerShell 阻止 Microsoft 365 用户帐户

此文章适用于 Microsoft 365 企业版和 Office 365 企业版。

阻止访问 Microsoft 365 帐户时,会阻止任何人使用该帐户登录并访问 Microsoft 365 组织中的服务和数据。 可以使用 PowerShell 阻止对单个或多个用户帐户的访问。

阻止对单个用户帐户的访问

注意

Azure Active Directory 模块将替换为 Microsoft Graph PowerShell SDK。 可以使用 Microsoft Graph PowerShell SDK 访问所有 Microsoft Graph API。 有关详细信息,请参阅 Microsoft Graph PowerShell SDK 入门

首先, 连接到 Microsoft 365 租户

阻止和取消阻止用户帐户需要 User.ReadWrite.All 权限范围或“List subscribedSkus”图形 API参考页中列出的其他权限之一。

Connect-Graph -Scopes User.ReadWrite.All

使用以下语法阻止单个用户帐户:

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

注意

Update-MgUser cmdlet 中的 -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

阻止多个用户帐户

若要阻止对多个用户帐户的访问,请在每行创建一个包含一个帐户登录名的文本文件,如下所示:

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}

另请参阅

使用 PowerShell 管理 Microsoft 365 用户帐户、许可证和组

使用 PowerShell 管理 Microsoft 365

PowerShell for Microsoft 365 入门