嘿伙计们需要一些帮助,
我一直在讨论如何从密码重置脚本中排除某些用户。
这是剧本:
$newPassword = ConvertTo-SecureString -AsPlainText "MyP@ssw0rd" -Force
Import-Csv "C:\users\administrator\desktop\UserCreation.csv" | ForEach-Object {
$samAccountName = $_."samAccountName"
Set-ADAccountPassword -Identity $samAccountName -NewPassword $newPassword -Reset
Set-AdUser -Identity $samAccountName -ChangePasswordAtLogon $false
Write-Host " AD Password has been reset for: "$samAccountName
}
我想从此密码重置中排除某些samAccountNames但是我无法解决这个问题。
非常感谢任何帮助。
谢谢大家
答案 0 :(得分:1)
你可以使用这样的排除列表:
$exclusion_list = "testuser1","testuser2"
$totalList = ("testuser1","testuser2","testuser4")
foreach($item in $totalList){
if( $exclusion_list -contains $item){
"excluding $item"
continue
}
else{
#reset the password
$item
}
}
哈希表版本出于性能原因:
$exclusion_list = @{"testuser1"="exclude";"testuser2"="exclude"}
$totalList = ("testuser1","testuser2","testuser4")
foreach($item in $totalList){
if( $exclusion_list[$item]){
"excluding $item"
continue
}
else{
#your code
$item
}
}
答案 1 :(得分:1)
您始终可以在Set-AdUser comamand中设置过滤器。 像:
Get-ADUser -Filter {(Enabled -eq $true)`
-and (sAMAccountType -ne 805306370)`
-and (cn -ne "Administrator")}`
-and (SamAccountName -like "*-ext*")`
-SearchBase "OU=OUwithUsers,DC=MySubdomain,DC=MyDomain,DC=com"
您可以像这样过滤您的用户列表,也可以通过删除/添加用户来修改您的csv文件。您正在使用csv文件作为导入,因此您应该拥有要更改其密码的用户列表。
就个人而言,我会清除csv或创建一个带有更多过滤器的csv,这样我就可以导入它并完成我想做的事情,而不必担心如果我未经他的许可更改某人的密码。