Batch file 在.bat命令中自动化我的工作

Batch file 在.bat命令中自动化我的工作,batch-file,wmi,rename,Batch File,Wmi,Rename,这组命令不能干净地执行。它可以正确重命名,但不会加入域或将用户添加到localgroup administrators @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 informati

这组命令不能干净地执行。它可以正确重命名,但不会加入域或将用户添加到localgroup administrators

@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已经被用于重命名,暂停会释放它,然后它会再次为域重新初始化。当然,添加到管理员组会失败,因为它总是一个域帐户,但我也不确定。如有任何见解,将不胜感激

在我看来,如果您使用powershell而不是bat文件,将会更容易。要将计算机添加到域中,可以使用中的示例。要将用户添加到本地管理组,您可以使用此组。我建议将
wmic
更改为
start/wait”wmic
,并完全删除ping。首先,您应该使用

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


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

老板说了一些关于做人的事情,我们需要让用户安静下来。我以前使用过netdom,但它也给了我同样的问题。对
net
命令的处理也一样吗?或者尝试将
PING
s替换为
timeout/t5
,其中数字是以秒为单位的超时时间;现在,它在加入域后将用户添加到本地管理员,但不重命名计算机。