我有许多服务器,需要向 1 个特定用户授予管理权限,即,将他添加到本地管理员。我猜可以用 PowerShell 或其他方式编写脚本。有人能告诉我怎么做吗?
答案1
如果这台计算机位于 Active Directory 域中,我将通过组策略对其进行控制。(您可以通过 GPO 使用受限组,这会将成员添加到本地管理员组,同时删除不应该在该组的成员。)
如果这台计算机不属于域,只需运行
C:\>net localgroup Administrators billybob /add
您当然也可以在批处理文件中运行上述行。
答案2
也许不是最漂亮的 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)
}
答案3
基本上就是 Ryan Ries 所说的。我过去常常使用受限组来添加管理员(这也会踢出不应该在那里的人,额外好处!)。
对于非域计算机,类似执行程序带有计算机列表即可。如下所示:
@ECHO ON
set controlfile=serverlist.txt
FOR /F %%L IN (%controlfile%%) DO (
SET "line=%%L"
psexec \\%%L net localgroup Administrators YourDomain\YourUser /add
)