1

この一連のコマンドは正常に実行されません。名前は適切に変更されますが、ドメインに参加したり、ユーザーをローカルグループ管理者に追加したりしません。

@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."

しかし、Ping コマンドを PAUSE に置き換えると、問題なく実行されます。問題は、自動化したいことと、別のコーディング言語を使用したくないことです。名前の変更に既に使用されている WMIC に問題があり、PAUSE によってそれが解放され、ドメイン用に再初期化されます。もちろん、常にドメイン アカウントになるため、管理者グループへの追加は失敗しますが、やはり私は確かにわかりません。どんな洞察もいただければ幸いです!

4

3 に答える 3

0

PINGに変更wmicしてstart /wait "" wmic完全に削除することをお勧めします。

于 2013-04-25T19:06:08.510 に答える
0

まず第一に、あなたが使うべきです

ping -n 1 1.1.1.1 > Nul 

-n 1 を待機したい秒数に変更するだけです。オプションはターゲットの前にある必要がありますが、それはセマンティクスの問題です

WMIC 行が問題の原因であると思われる場合は、それらを NETDOM コマンドに置き換えます。はるかに使いやすいです。

于 2013-04-25T19:06:28.060 に答える
0

私の意見では、bat ファイルの代わりに powershell を使用すると、はるかに簡単になります。コンピューターをドメインに追加するには、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

于 2013-04-25T19:01:01.247 に答える