第六十八期 使用Powershell将Microsoft365组织内个人用户设置密码永不过期

发布于 2021-05-09  295 次阅读


我所使用到的帮助文档:
1. Microsoft365 - 将个人用户密码设置为永不过期
2. Install Azure Active Directory PowerShell for Graph
3. Azure Active Directory PowerShell 2.0 - Bulk creation of new users

一、准备
首先Windows自带的Powershell没有Azure AD 组件,直接运行第一个文档里所给的任何命令都会直接报错
按照第2个文档里的指引我们应该先下载Azure AD模组
1.以管理员身份运行PowerShell
2.运行

Install-Module AzureAD

如果觉得下载过程卡,你得挂梯子。
3.运行时一律选Y

二、开始设置
同样第1个文档只是说明你在Powershell上已经连上了Azure AD服务的情况下应该怎么做,但是很多人并不知道怎样连接上Azure AD的服务,凭借我用Sharepoint Online Manager PowellShell扩容的经验,应该有Connect开头的命令,所以我去Azure AD文档里随便找了一个项目。如第3个文档给出的提示
1.运行

Connect-AzureAD

来连接Azure AD服务
2.使用全局管理员子账户登录
按照第1个文档里的提示 我们应该运行下面的命令来将每一个用户设置成密码永不过期
3·运行

Get-AzureADUser -All $true | Set-AzureADUser -PasswordPolicies DisablePasswordExpiration

如果要指定某一个人账户密码不过期

Set-AzureADUser -ObjectId <user ID> -PasswordPolicies None

自己把""改成你所管理的全局下面的某一个人的账户。
4.完成

三、检查
按照第1个文档的指引

运行下列命令之一:
若要了解单个用户的密码是否设置为永不过期,请通过使用 UPN (例如 [email protected]) 或要检查的用户 ID 运行以下 cmdlet:

UPN指的是一个特定的用户。

Get-AzureADUser -ObjectId <user id or UPN> | Select-Object UserprincipalName,@{
    N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}
}

示例

Get-AzureADUser -ObjectId [email protected] | Select-Object UserprincipalName,@{
    N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}
}

你只要把[email protected]改成你想要查询本管理全局下的用户即可。

若要查看 所有用户的"密码永不 过期"设置,请运行以下 cmdlet:

Get-AzureADUser -All $true | Select-Object UserprincipalName,@{
    N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}
 }

获取当前用户的桌面上具有 Html 格式 PasswordNeverExpires 的所有用户的报告,其名称ReportPasswordNeverExpires.htm l

Get-AzureADUser -All $true | Select-Object UserprincipalName,@{
    N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}
} | ConvertTo-Html | Out-File $env:userprofile\Desktop\ReportPasswordNeverExpires.html

获取当前用户桌面上 CSV 中 PasswordNeverExpires 的所有用户的报告,并ReportPasswordNeverExpires.csv

Get-AzureADUser -All $true | Select-Object UserprincipalName,@{
    N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}
} | ConvertTo-Csv -NoTypeInformation | Out-File $env:userprofile\Desktop\ReportPasswordNeverExpires.csv

Skyler
2021/5/9 15:38


Skyler & Harry 's Notes