2013-04-25 28 views
0

這組命令不會乾淨地運行。它可以正確重命名,但不會加入域或將用戶添加到本地組管理員。在.bat命令中自動執行我的作業

@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釋放它,然後它重新爲該域重新初始化,當然,添加到管理員組失敗了,因爲它始終是一個域帳戶,但是我又一次不知道肯定。任何有識之士將不勝感激!

+0

我改變了FJoinOptions = 3;現在它在加入域後將用戶添加到本地管理員,但不重命名該計算機。 – 2013-04-27 03:56:39

回答

0

我建議更改wmicstart /wait "" wmic並完全刪除PINGs。

+0

將嘗試1個時刻... – 2013-04-25 21:02:11

+0

真的很酷,但仍然是相同的結果:( – 2013-04-25 21:14:20

+0

對'net'命令的處理方法相同嗎?或者嘗試用'timeout/t 5'替換'PING',其中數字是超時以秒爲單位 – Magoo 2013-04-26 03:57:00

0

首先,你應該使用

ping -n 1 1.1.1.1 > Nul 

,只是改變-n 1至要等待然而,許多秒。選項應在目標之前,但這只是語義問題

如果您認爲WMIC行導致問題,請用NETDOM命令替換它們。使用起來更容易。

+0

老闆說了一些關於做人的事情,我們需要讓用戶停下來,我以前用過netdom,它給了我同樣的問題。 – 2013-04-25 21:00:56