首页 > 解决方案 > 检查 AD 帐户是否存在时重置 AD 帐户的 PowerShell 脚本

问题描述

我不认为我离得很远,但是第一个 if 语句不起作用,如果用户名正确,则重置有效,但是我希望脚本在重置之前验证 AD 用户名是否正确。我需要改变什么?

Import-Module ActiveDirectory  
$username = Read-host "please enter users AD username"  
If ($username -eq $null) {"$username does not exist in AD"}  
Else {"User found in AD"}  
$myinformation = get-aduser $username -properties *  
Set-ADAccountPassword $username -NewPassword $newpwd -Reset -PassThru |    Set-ADuser -ChangePasswordAtLogon $False  
Read-host "Password reset successfully" 

标签: powershellif-statementactive-directory

解决方案


更新这一行:

If ($username -eq $null) {"$username does not exist in AD"}

至:

try {
Get-ADUser $username -ErrorAction Stop
} 
Catch {"$username does not exist in AD"}

或者:

if (!(Get-ADUser -filter {SamAccountName -eq $username})) {"$username does not exist in AD"}

就像 TobyU 评论的那样,您$username没有验证用户是否存在于 AD 中,我建议的替换行验证它,这意味着如果$username不存在(!简称-not)打印“不存在”等。


推荐阅读