Powershell - 查找并选择删除多个服务器上本地管理员组中的用户

时间:2014-01-10 09:39:26

标签: powershell

我有以下代码,可以从给定的服务器列表中查找作为服务器本地管理员组成员的所有用户。有人可以建议修改这个的最佳方法,以便我可以在服务器列表中搜索一个特定的用户名吗?

除此之外,有人可以添加一些可选代码来从本地管理员组中删除指定用户(如果发现它们在其中)吗?

在这些服务器上线之前,我们正在寻找在项目完成构建和配置生产服务器之后清除该组的方法。

$SERVERS = GC .\HOST.TXT

FOREACH ($C in $Servers) {
WRITE-HOST $c
[string]$strComputer = $c 
$computer = [ADSI]("WinNT://" + $strComputer + ",computer") 
$Group = $computer.psbase.children.find("Administrators")
$members= $Group.psbase.invoke("Members") | %{$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)} 

foreach($user in $members) 
{ 
$objUser = [ADSI]("WinNT://$strComputer/$user")
[string]$output = $strComputer + "," + $user + "," + $objUser.SchemaClassName + "," + $ObjUser.Description
write-host $output
$output |out-file -append .\L_out.txt
Remove-Variable objUser
}
}

1 个答案:

答案 0 :(得分:0)

添加if语句,搜索您想要的字符串,然后在其上输入一些用户输入,如果用户输入“是”则删除

if ($user -eq "****INSERT USER NAME HERE****") {
    if (Read-Host -Prompt "Delete user? (Yes/No)" -like "yes") {
        Remove-ADUser -Identity $user -Server $C            
    }
}

这应该在您的foreach($user in $members) {