使用.bat命令自动完成我的工作

时间:2013-04-25 18:50:25

标签: batch-file wmi rename

这组命令不能干净利落地运行。它正确重命名但不加入域或将用户添加到本地组管理员。

@echo off
SET /P compName=Name of the computer:%=%
SET /P duName=Computer User:%=%
SET /P adminUserName=Admin UserName:%=%
SET /P adminPassword=Admin Password:%=%
echo If the Above information was entered incorrectly or is incorrect please exit this application now.
PAUSE
CLS

echo Renaming the computer %compName%.
wmic COMPUTERSYSTEM WHERE Name="%ComputerName%" CALL Rename Name="%compName%" Password=null UserName=null

PING 1.1.1.1 -n 1 -w 3000 > nul

echo Error Level: %errorlevel%
echo Joining the computer to the Doamin.net Domain.
wmic COMPUTERSYSTEM WHERE Name="%COMPUTERNAME%" CALL JoinDomainOrWorkgroup FJoinOptions=1 Name="Domain.net" UserName="%adminUserName%" Password="%adminPassword%"
echo Error Level: %errorlevel%

PING 1.1.1.1 -n 1 -w 3000 > nul

echo Adding %duName% to the Administrator's group.
net LOCALGROUP Administrators /ADD %duName%
echo Error Level: %errorlevel%

PING 1.1.1.1 -n 1 -w 3000 > nul

echo Restarting computer...
Shutdown /R /c "Restarting computer and applying changes."

但是如果我用PAUSE替换Ping命令,它确实干净利落。问题是我希望它自动化,我不想使用不同的编码语言。我认为问题在于WMIC已经被用于重命名,PAUSE会释放它然后再次为域重新初始化然后添加到管理员组失败,因为它总是会成为域帐户,但我又一次不确定。任何见解都将不胜感激!

3 个答案:

答案 0 :(得分:0)

在我看来,如果你使用powershell而不是bat文件会更容易。要将计算机添加到域,您可以使用http://letitknow.wordpress.com/2011/02/12/domain-join-using-powershell-v2-0-part-i/中的示例。要将用户添加到本地管理员组,您可以使用此http://gallery.technet.microsoft.com/scriptcenter/Add-AD-UserGroup-to-Local-fe5e9239

答案 1 :(得分:0)

我建议将wmic更改为start /wait "" wmic并完全删除PING。

答案 2 :(得分:0)

首先你应该使用

ping -n 1 1.1.1.1 > Nul 

只需将-n 1更改为您想等待的秒数。选项应该在目标之前,但这只是语义问题

如果您认为WMIC行导致了问题,请使用NETDOM命令替换它们。它更容易使用。

相关问题