删除具有名字和姓氏的批量用户

时间:2018-09-11 10:32:41

标签: powershell active-directory

我想创建一个删除批量用户的脚本,而不是使用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
 }

2 个答案:

答案 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

您需要相应地更改脚本。