У меня есть несколько серверов, к которым мне нужно предоставить административный доступ 1 конкретному пользователю, т.е. добавить его в список локальных администраторов. Я думаю, это может быть написано с помощью PowerShell или как-то еще ... Может кто-нибудь посоветует мне, как это сделать?
Если этот компьютер находится в домене Active Directory, я бы контролировал это через групповую политику. (Вы можете использовать группы с ограниченным доступом через GPO, который добавляет участников в локальную группу администраторов, одновременно удаляя участников, которых там не должно быть.)
Если этот компьютер не является частью домена, просто запустите
C:\>net localgroup Administrators billybob /add
Конечно, вы также можете запустить указанную выше строку в пакетном файле.
Возможно, не самый красивый Powershell и определенно не самый короткий, но вот модифицированная версия того, что я использую.
# Get the servers from a file named listOfServers.txt, skip lines
# either commented with a # or blank.
$serverList = Get-Content -Path C:\temp\listOfServers.txt | where {($_ -notlike "*#*") -and ($_ -notmatch "^\s*$")}
# Cycle throught the servers adding the user to the Administrators group.
foreach ($server in $serverList) {
$computer = [ADSI]("WinNT://" + $server + ",computer")
$group = $computer.psbase.children.find("Administrators")
$group.Add("WinNT://yourDomainName/" + $user)
}
В основном то, что сказал Райан Райс. Раньше я использовал ограниченные группы для добавления администраторов (что также выгоняет людей, которых там не должно быть, бонус!).
Для компьютеров, не относящихся к домену, что-то вроде PsExec со списком компьютеров будет работать. Что-то вроде этого:
@ECHO ON
set controlfile=serverlist.txt
FOR /F %%L IN (%controlfile%%) DO (
SET "line=%%L"
psexec \\%%L net localgroup Administrators YourDomain\YourUser /add
)