如何在PowerShell密码重置脚本中排除指定用户
嗨,很高兴能帮到你!要在这个PowerShell密码重置脚本里排除特定用户其实很简单,咱们可以通过添加一个排除列表,再在处理每个用户前做个检查就行。另外先提个小细节:你原脚本里的$_"samAccountName"写法有误,应该改成$_.samAccountName,不然会报错哦。
下面是修改后的完整脚本,我会在关键部分加上注释:
# 定义需要排除的用户samAccountName列表,把你不想重置的用户名填在这里 $excludedUsers = @("userToExclude1", "userToExclude2", "administrator") $newPassword = ConvertTo-SecureString -AsPlainText "MyP@ssw0rd" -Force Import-Csv "C:\users\administrator\desktop\UserCreation.csv" | ForEach-Object { $samAccountName = $_.samAccountName # 检查当前用户是否不在排除列表中,只有不在列表里的才执行后续操作 if ($samAccountName -notin $excludedUsers) { Set-ADAccountPassword -Identity $samAccountName -NewPassword $newPassword -Reset Set-AdUser -Identity $samAccountName -ChangePasswordAtLogon $false Write-Host "AD Password has been reset for: $samAccountName" } else { # 可选:输出提示,告诉我们这个用户被跳过了 Write-Host "Skipping excluded user: $samAccountName" } }
关键说明:
$excludedUsers:这是你自定义的排除数组,把所有不需要重置密码的用户samAccountName都放进去,多个用户用逗号分隔。-notin操作符:用来判断当前用户是否不在排除列表里,只有满足这个条件的用户才会执行密码重置流程。- 可选的
else块:如果想看到哪些用户被跳过了,可以保留这个部分,方便验证脚本是否按预期工作。
如果你的排除需求更复杂(比如排除某个OU下的用户,或者排除具备特定属性的用户),也可以随时调整逻辑~
内容的提问来源于stack exchange,提问作者christian
相关产品推荐
相关产品推荐

