2014-06-14 52 views
-3

我想知道是否有方法通过使用Visual Basic或VB脚本在计算机上更改域。我必须nanualy超过100个PC转移到另一个域。通过运行可自动更改计算机上的域的应用程序将会很有用。VB更改PC的域名

+0

见'WMIC COMPUTERSYSTEM呼叫/'?这是win32_computersystem的别名。 – phd443322

+0

这是一个示例wmic命令,用于查询computername.txt中列出的计算机的事件日志。 'wmic /node:"@%userprofile%\desktop\ComputerName.txt“/output:"%userprofile%\desktop\EventLog.html”/ failfast:PATH Win32_NTLogEvent where(EventIDentifier = 42 or eventidentifier = 1003)get/format :hform' – phd443322

+0

以下是来自Join文档的一些示例代码(您需要阅读)示例代码[VBScript] 以下VBScript示例将计算机加入到域中,并在Active Directory中创建计算机的帐户。 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 =“ FABRIKAM “ strPassword = ”ls4k5ywA“ – phd443322

回答

3

您可以使用Win32_ComputerSystem WMI类,例如,在VBScript:

Const JOIN_DOMAIN = 1 
Const ACCT_CREATE = 2 

domain = "DOMAIN" 
username = "user" 
password = "pass" 
ou  = Null 'create the computer object in the default location 

Set net = CreateObject("WScript.Network") 
Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!" _ 
      & "//./root/cimv2") 

Set computer = wmi.Get("Win32_ComputerSystem.Name='" & net.ComputerName & "'") 
result = computer.JoinDomainOrWorkgroup(domain, password, _ 
     domain & "\" & username, ou, JOIN_DOMAIN + ACCT_CREATE) 
If result <> 0 Then 
    WScript.Echo "Domain join failed (" & result & ")." 
    WScript.Quit result 
End If 

For Each computer In wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem") 
    computer.Reboot 
Next 

,或者你可以掏出到netdom命令:

netdom join %COMPUTERNAME% /domain:DOMAIN /userd:DOMAIN\USER /passwordd:PASS 
shutdown -r -t 0