3

我想编写一个脚本,将域用户添加到本地管理员组。我已经试过了

NET LOCALGROUP Administrators "domain\domainuser" /ADD

但我收到拒绝访问错误。

问题是,如果我想以域用户身份运行它,它没有本地管理员权限,如果作为本地管理员,它无权访问域名。(我不想使用域管理员)

如果我手动右键单击计算机图标,而不是manage,我输入计算机名称/本地管理员用户/密码,而不是在Local Users and Groups -> Groups folder I want to add user to Administrators,提示我再次登录. 如果我使用域用户登录,它可以工作。

我的问题是,是否可以用批处理脚本做同样的事情(或类似的事情)?

4

3 回答 3

3

也许,来自 vbs

GetObject("WinNT://" + WScript.CreateObject("WScript.Network").ComputerName + "/Administrators").Add "WinNT://DomainName/UserName"
于 2013-11-05T14:38:46.063 回答
2

我已经用另一种方式解决了它,使用 2 个批处理文件所以我给你我的代码:

这个在 c: 中创建一个文件夹,而不是创建一个文本文件,它复制其中当前用户的名称,而不是同一文件夹中的另一个批处理文件,最后以本地管理员身份运行它。如果你写的密码正确(你写的时候密码不会显示为“*”):

mkdir c:\tempfiles$
break>c:\tempfiles$\temp.txt
echo %username% >> "c:\tempfiles$\temp.txt"
copy "%~dp0\admin.bat" "c:\tempfiles$"
runas /noprofile /env /user:%computername%\<LOCAL ADMIN USER> "C:\tempfiles$\admin.bat"
pause
rmdir /s /q "c:\tempfiles$"

admin.bat 使用文本文件中写入的用户名(如果不是,它将使用 %username% 作为本地管理员用户名来添加它,因为我们以本地管理员身份运行它)批处理文件只是必需的,因此您可以从任何地方运行它。例如,如果您将它放在服务器的映射驱动器上,它将无法工作。

set /p u=<c:\tempfiles$\temp.txt
net localgroup Administrators /add <DOMAIN NAME>\%u%

我已经在多台计算机上尝试过,在大多数计算机上,它都可以运行。在某些计算机上它没有,可能是因为我公司的当地政策。我还没有弄清楚。

如有任何问题或建议,请自信地写下您的意见。

于 2014-06-10T19:12:47.343 回答
0

此批处理文件的目的是获取域组成员并将它们添加到本地组。您必须右键单击此文件并选择以管理员身份运行。

@echo off 
setlocal EnableDelayedExpansion
set /p v1=[Enter Domain Group Name]
set /p v2=[Enter domain name: xxx.com ]
set /p v3=[Enter Localgroup "Name"]

For /F "skip=8 tokens=1 delims= " %%G IN ('net group %v1% /domain' ) ^
DO if %%G neq The net localgroup %v3% %v2%\%%G  /add 
timeout /t 1

For /F "skip=8 tokens=2 delims= " %%G IN ('net group %v1% /domain' ) ^
DO if %%G neq command net localgroup %v3% %v2%\%%G  /add
timeout /t 1

For /F "skip=8 tokens=3 delims= " %%G IN ('net group %v1% /domain' ) ^
DO if %%G neq completed net localgroup %v3% %v2%\%%G /add
timeout /t 1
于 2016-12-28T19:37:45.063 回答