用wmic 从命令行加入域的问题
用wmic 从命令行加入域的问题
--------------------------------------------------------------------------------
Silence2007-04-07, 23:03:29
在XP 下,用WMIC 命令可以实现将计算机加入域或工作组。
WMIC 的功能非常丰富,下面是与域有关的部分内容。
1. 加入域
wmic computersystem where Name="%COMPUTERNAME%" call JoinDomainOrWorkgroup Name="d " username="\username" password="password" FJoinOptions=1
注:
%COMPUTERNAME% 系统环境变量,内容是计算机名。
FJoinOptions=1 表示首次加入域,若不指定username 和password,则表示加入/修改工作组。
FJoinOptions=32 表示允许加入一个新域,即使该计算机已经加入到了某个域。
2、退出域
wmic computersystem where Name="%COMPUTERNAME%" call UnJoinDomainOrWorkgroup userna me="\username" password="password"
命令运行后会显示一个返回值,若值为零则表示成功。
我有上千台微机需要加入域,所以希望来个快捷的办法。
这些天进行了多次试验,发现退出域命令1 00% 测试有效,而加入域命令却经常不成功,而且我一直没有发现什么规律。
百思不得其解,特来论坛讨教。
测试环境:2000 Server + XP Pro SP2
--------------------------------------------------------------------------------
asap2007-04-08, 06:50:21
将FJoinOptions=3试试。
2表示在server端创建computer account。
没有试过Windows 2000 Server 下的自动加入;以前也是写的vbscript脚本这样作的;看MSDN上说这个的要求是这样的:
Client Requires Windows Vista or Windows XP.
Server Requires Windows Server "Longhorn" or Windows Server 2003.
也许这个就是问题所在?手动加入domain时,如果不成功时,也是需要在DC上建立computer账号的。
good luck!
--------------------------------------------------------------------------------
G992007-04-08, 07:45:32
学习一下哈
--------------------------------------------------------------------------------
fatality2007-04-08, 09:24:43
克隆恢复后,属于信任关系失败。
需要重新加入,试试:
netdom move
--------------------------------------------------------------------------------
Silence2007-04-08, 10:33:00
克隆恢复后,属于信任关系失败。
需要重新加入,试试:
netdom move
我的机器并没有加入过域,而且加入前修改了SID,第一次加入时有时候能成功,有时候就失败。
或许与我的服务器是2000 Server 有关?我当时在MSDN 上查资料,只注意到了资料上提到JoinDomai nOrWorkgroup 方法不支持2000,应该是指客户端。
--------------------------------------------------------------------------------
Silence2007-04-08, 10:52:41
我现在考虑用sysprep 时让其自动加入域,不过发现在加入域之前我无法做到用程序自动修改计算机名,头痛ing。
或许我应该先ghost 还原镜像出来,调用程序自动修改IP,然后再调用sysprep 封装。
--------------------------------------------------------------------------------
Silence2007-04-10, 21:29:59
将FJoinOptions=3试试。
2表示在server端创建computer account。
没有试过Windows 2000 Server
下的自动加入;以前也是写的vbscript脚本这样作的;看MSDN上说这个的要求是这样的:
也许这个就是问题所在?手动加入domain时,如果不成功时,也是需要在DC上建立computer账号的。
good luck!
谢谢!果然是需要使用3 参数。
今天装了一个机房,用Ghost + Sysprep + Tftpd32 + 自己写的小工具+ 一些批处理,180 台微机的IP、计算机名、域在分发后全自动完成,大大降低了工作量。
后面的几个机房就轻松多了。
--------------------------------------------------------------------------------
fatality2007-04-11, 08:37:21
谢谢!果然是需要使用3 参数。
今天装了一个机房,用Ghost + Sysprep + Tftpd32 + 自己写的小工具+ 一些批处理,180 台微机的IP、计算机名、域在分发后全自动完成,大大降低了工作量。
后面的几个机房就轻松多了。
哈哈,真是好消息,那就等你的新版小工具发布啦!
--------------------------------------------------------------------------------
往事2007-04-11, 12:49:57
写了个脚本, 调用WMI, 可以实现自动加入一个域
Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Set objNetwork = CreateObject("work")
strComputer = puterName
Set objComputerSystem = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & strCompu ter & "\root\cimv2:Win32_='" & strComputer & "'")
ReturnValue = objComputerSystem.UnJoinDomainOrWorkGroup( , , 0)
ReturnValue = objComputerSystem.JoinDomainOrWorkGroup("<Domain Name>", "<password>", "<username>", NULL, JOIN_DOMAIN+ACCT_CREATE)
If ReturnValue <> 0 Then
WScript.Echo "Rename failed. Error = " & Err.Number
Else
WScript.Echo "Rename succeeded." & " Reboot for new name to go into effect"
End If
--------------------------------------------------------------------------------。