У меня есть следующий код, чтобы найти всех пользователей, которые являются членами группы локальных администраторов сервера, из данного списка серверов. Может ли кто-нибудь посоветовать лучший способ изменить это, чтобы я мог искать только одно конкретное имя пользователя в списке серверов?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
}
}
более упрощенными могут быть: $ name = read-host "user?"; $ members = $ Group.psbase.invoke ("Участники") | % {$ _. GetType(). InvokeMember («Имя», «GetProperty», $ null, $ _, $ null)} | ? {$ _ -like $ name} | удалить-ADUser –