Я использую следующую Powershell от http://iislogs.com/steveschofield/2009/01/09/list-local-administrators-on-a-machine-using-powershell-adsi/, чтобы извлекать учетные записи локальных и доменных администраторов, настроенные на ПК и серверах внутренней сети.Powershell для размещения локальных администраторов в сети
Powershell скрипт ниже:
function LogToFile ([string]$strFileName, [string]$strComputer)
{
Add-Content $strFileName $strComputer
}
$strComputer = “server1.loc.mydomain.com”
$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)
{
Write-Host $user
$a = $strComputer + “!” + $user.ToString()
LogToFile “C:\local-admins.txt” $a
}
При выполнении он дает результаты в текстовом файле в следующем формате:
server1.loc.mydomain.com!Administrator
server1.loc.mydomain.com!JohnDoe
server1.loc.mydomain.com!Support
server1.loc.mydomain.com!Domain Administrators
Может кто-то помочь мне изменить выход на TXT файл, поэтому результаты показаны в таком формате:
server1.loc.mydomain.com!Administrator!JohnDoe!Support!Domain Administrators
Если сообщается таким образом, то я могу легко экспортировать в csv и работать с ним. Было бы здорово, если это можно преобразовать для экспорта в CSV в желаемом формате вместо txt.
- Как сделать код в строке 6 так, например, если я хочу отсканировать всю подсеть с именами: server1, server2, ... server38 ... Мне не нужно вручную изменять эту строку для каждой машины. Я пробовал сервер *, сервер [*], и это дает мне ошибки.
Я полный новичок в PS, но пытаюсь объединить вещи для удовлетворения моих потребностей и надеюсь, что вы можете предоставить мне необходимую помощь.
Спасибо.
'$ a = @ ($ strComputer; $ members) -join '!'' –
Это почти что. Но теперь он производит желаемый вывод в тех же строках, в зависимости от количества администраторов. Например. если есть 4 админа, выходной файл (the> добавляются только для более четкого акцента) > server1.loc.mydomain.com! Администратор! JohnDoe! Поддержка! Администраторы домена > server1.loc.mydomain.com! Администратор ! JohnDoe! Поддержка! Администраторы домена > server1.loc.mydomain.com! Administrator! JohnDoe! Поддержка! Администраторы домена > server1.loc.mydomain.com! Administrator! JohnDoe! Поддержка! Администраторы домена – valdroni
Удалите весь ' foreach() {} 'loop, просто сделайте это один раз –