2014-06-14 53 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