我想创建一个删除批量用户的脚本,而不是使用SAMACCOUNTNAME
我想使用名字和姓氏,
Import-Module ActiveDirectory
$ADusers = Import-csv C:\TEST\Delete.CSV
Foreach ($user in $ADusers) {
#Confirming the identity
$users = Get-ADUser -Identity $user -Properties | Select-Object Givenname, Surename
#Removing the user
Remove-ADUser -Identity $user.samAccountName -Confirm:$false
}
答案 0 :(得分:1)
在AD中搜索用户时,我喜欢Ambiguous Name Resolution:
Get-ADUser -LDAPFilter "(anr=Jim Smith)"
这将搜索所有命名属性(请参见上面的链接,以字符串"jim smith"
开头的所有对象,以及(givenName=jim*)
和(sn=smith*)
的所有对象,以及对象(givenName=smith*)
和(sn=jim*)
。
当“吉姆斯”帐户使用其全名“吉米”时,这很有用,这将由ANR返回,但不会由直接的givenName
/ sn
过滤器返回。
您可以有多个具有相同名字/姓氏的用户,因此您需要处理返回多个用户的情况。
SAMAccoutName
,但是对于单个帐户是唯一的
编辑:
如果您的csv带有两列GivenName和Surname:
foreach ($user in $ADusers) {
$firstname = $user.GivenName
$lastname = $user.Surname
Get-ADUser -LDAPFilter "(anr=$firstname $lastname)"
}
以上只是列出了从Get-ADUser
返回的用户,只需通过管道将其删除即可Remove-ADUser
。我正在使用WhatIf
进行测试,请删除以实际删除用户:
Get-ADUser -LDAPFilter "(anr=$firstname $lastname)" | Remove-ADUser -WhatIf
答案 1 :(得分:0)
是的。
Get-ADUser -Filter {GivenName -eq "Max" -and sn -eq "Muller"} | Remove-ADUser
您需要相应地更改脚本。