使用 Microsoft Graph PowerShell 管理密码

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

可以使用 Microsoft Graph PowerShell 作为Microsoft 365 管理中心的替代方法,以管理 Microsoft 365 中的密码。

注意

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

首先,使用 Microsoft Entra DC 管理员云应用程序管理员帐户连接到 Microsoft 365 租户

管理用户的密码需要 User.ReadWrite.All 权限范围或“分配许可证”图形 API参考页中列出的其他权限之一。

Connect-Graph -Scopes User.ReadWrite.All

使用这些命令设置密码,并强制用户在下次登录时更改其新密码。

$userUPN="<user account sign in name, such as belindan@contoso.com>"
$newPassword="<new password>"
$secPassword = ConvertTo-SecureString $newPassword -AsPlainText -Force
Update-MgUser -UserId $userUPN -PasswordProfile @{ ForceChangePasswordNextSignIn = $true; Password = $newPassword }

批量密码更新

可以使用 PowerShell 批量更新密码。 本部分中的脚本使用 Set-ADAccountPasswordSet-ADUser cmdlet,它们是 Active Directory PowerShell 模块的一部分。 默认情况下,此模块安装在域控制器上,但也可在安装了 远程服务器管理工具 (RSAT) 的其他计算机上安装。

首先,创建一个 CSV 文件,其中包含要重置其密码的用户列表。 CSV 文件应包含两列: “用户名”“密码”。 在 “用户名” 列中,输入要重置其密码的用户的用户名。 在 “密码” 列中,输入每个用户的新密码。

下面是在 Excel 中构造 CSV 文件时的外观示例:

Username,Password,
user1,pass1,
user2,pass2

在相应的列中输入用户名和密码后,可以将该文件保存为 CSV 文件。

接下来,打开 PowerShell 并运行以下命令:

Connect-AzureAD
 
Import-Csv -Path C:\Path\To\YourFile.csv | ForEach-Object {
    $username = $_.Username
    $password = $_.Password | ConvertTo-SecureString -AsPlainText -Force
    Set-ADAccountPassword -Identity $username -NewPassword $password -Reset
    Set-ADUser -Identity $username -ChangePasswordAtLogon $false
}

此脚本将从 CSV 文件导入数据,重置列表中的每个用户的密码,并将 属性设置为 ChangePasswordAtLogon$false ,以便用户在登录时不会收到创建其自己的密码的提示。

另请参阅

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

使用 PowerShell 管理 Microsoft 365

PowerShell for Microsoft 365 入门