如何使用 PowerShell 创建、更改和测试密码
自动化是简化 Active Directory 管理任务的关键。在本文中,我将向您展示如何使用 PowerShell 脚本创建、更改和测试用户密码。
安装 AD PowerShell 模块
在使用 PowerShell 管理 Active Directory 之前,您需要安装 Active Directory PowerShell 模块。如果您使用 Windows 10 管理 AD,请首先安装远程服务器管理工具 (RSAT)。
Windows 10 版本 1809
如果您使用的是 Windows 10 版本 1809,RSAT 作为一项按需功能包含在内,因此您无需下载 RSAT 软件包。要在 Windows 10 版本 1809 中启用 RSAT,请在提升的 PowerShell 控制台中运行以下命令:
$Password = (Read-Host -Prompt "New Password" -AsSecureString)
$User = (Read-Host -Prompt "Username")
$UserAccount = Get-LocalUser -Name $User
$UserAccount | Set-LocalUser -Password $Password修改AD用户密码
要使用 PowerShell 创建新的 AD 用户密码,请使用以下脚本。系统将提示您指定现有 AD 帐户的用户名,然后指定新密码,该密码必须满足域的密码复杂性要求。
$User = (Read-Host -Prompt "Username")
$Usrstring = "WinNT://localhost/"+$User
$usr=[ADSI] $Usrstring
$usr.passwordExpired = 1
$usr.setinfo()但是您可以使用 Set-ADAccountPassword 强制用户更改其 AD 帐户密码:
$User = (Read-Host -Prompt "Username")
Set-Aduser -Identity $User -ChangePasswordAtLogon $true更改管理员密码
要更改 AD 管理员密码,请在提示您使用以下代码输入用户名时键入administrator:
$Password = (Read-Host -Prompt "New Password" -AsSecureString)
$User = (Read-Host -Prompt "Username")
$UserAccount = Get-LocalUser -Name $User
$UserAccount | Set-LocalUser -Password $Password更改“密码永不过期”属性
要在本地用户帐户上设置“密码永不过期”属性,请使用 Set-LocalUser:
$User = (Read-Host -Prompt "Username")
Set-LocalUser -Name $User -PasswordNeverExpires $true要在 Active Directory 用户帐户上设置“密码永不过期”属性,请使用 Set-ADUser:
$User = (Read-Host -Prompt "Username")
Set-ADUser -Identity $User -PasswordNeverExpires $true更改服务帐户密码
要更改服务的登录属性,请使用 Get-Credential 和 Set-Service cmdlet。以下代码将 AppReadiness 服务从使用本地系统帐户更改为使用提示时输入的用户名和密码。请注意,Set-Service -Credential 参数仅在 PowerShell 6 及更高版本中受支持。
$credential = Get-Credential
Set-Service -Name "AppReadiness" -Credential $credential更改 Active Directory 中密码的到期日期
如果需要延长用户保留当前密码的时间,请将 pwsLastSet 属性设置为当前日期,为他们提供额外的时间,直到 Active Directory 强制他们更改密码。清除该属性然后将其设置为 -1 会将其设置为当前日期和时间。
Get-ADUser -Filter * -SearchScope Subtree -SearchBase "OU=Accounts,DC=ad,DC=contoso,DC=com" |
Set-ADUser -ChangePasswordAtLogon $true测试用户的凭据
如果您想测试用户的凭据是否有效,您所需要做的就是使用他们的用户名和密码启动一个进程。下面的代码使用提示时输入的凭据启动 cmd.exe。
启动进程-FilePath cmd.exe /c -Credential(获取凭据)