让客户端加入域的脚本

把如下代码存成joinDomain.vbs, 然后双击运行它. 解释: 建立一个域用户帐号. 然后把DomainNameHere, PasswordHere, DomainAccountHere改成你

把如下代码存成joinDomain.vbs, 然后双击运行它.

解释: 建立一个域用户帐号. 然后把DomainNameHere, PasswordHere, DomainAccountHere改成你的域名, 域用户密码, 域用户名. 在默认情况下, 普通域用户帐号只能加电脑到域十次, 而域管理员则不受限制. 如下代码我在XP下用域管理员帐号调试成功.


Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
strDomain = "DomainNameHere"
strPassword = "PasswordHere"
strUser = "DomainAccountHere"
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!" & strComputer & "rootcimv2:Win32_ComputerSystem.Name='" & strComputer & "'") ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, strPassword, strDomain & "" & strUser, NULL, JOIN_DOMAIN ACCT_CREATE) wscript.echo strComputer & " has been joined to domain:" & strDomain & ". You will neet to restart your PC to take effect."


要指出的是电脑未加入域时, 你是无法用域的组策略来使其运行脚本.













域环境内有大量客户机需要加入域的时候,一台一台的通过更改电脑属性那种方式加入域,是很麻烦的。这里提供一段加入域的代码只要在客户机运行,就可以加入域了,虽然还要一台台运行,但是一定程度上提高了工作效率。ps:双击运行后,并不会像以前那种方式加入域后提示重启。而是需要手动重启后,方可看到效果。

代码如下:

Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALL_INVOCATION = 262144
strDomain = "XXX" 注:这里添的是域名,可谓netbios或者域名
strPassword = "XXX" 注:这里添的是具有加入域权限的帐户的密码
strUser = "XXX" 注:这里添的是具有加入域权限的帐户
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!" & _
strComputer & "rootcimv2:Win32_ComputerSystem.Name='" & _
strComputer & "'")
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
strPassword, _
strDomain & "" & strUser, _
NULL, _
JOIN_DOMAIN ACCT_CREATE)

wscript.echo "计算机加入域完成!按确定后重新启动电脑!"
set

标签: