2012-08-11 6 views
0

Scénario: J'utilise ComputerA dans un domaine avec des informations d'identification d'administrateur. Remote ComputerB (avec des informations d'identification d'administrateur connues) est dans un groupe de travail. ComputerB doit rejoindre un domaine spécifique (différent de ComputerA) dans une unité d'organisation spécifiée que mes informations d'identification ComputerA actives ont le droit de faire. Je ne peux pas utiliser un programme externe tel que NETDOM et préférerais utiliser VBScript.Comment joindre un ordinateur de groupe de travail à un domaine à distance

Toute aide est très appréciée!

Répondre

0

un morceau de script que je pouvais réellement résoudre ce moi-même. Voici le code pour les futurs codeurs:

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 

Const WbemAuthenticationLevelPktPrivacy = 6 

SystemName = "ComputerB" 
strNamespace = "root\cimv2" 
ComputerBLogin= "Login" 
ComputerBPass = "Password" 
ComputerALogin = "Login" 
ComputerAPass = "Password" 
DomainName = "domain.com" 
OU = "OU=desiredou,DC=domain,DC=com" 

Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") 

Set objWMIService = objwbemLocator.ConnectServer(SystemName, strNamespace, ComputerBLogin, ComputerBPass) 

objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy 

Set colComputers = objWMIService.ExecQuery _ 
    ("Select * From Win32_ComputerSystem") 
For Each objComputer in colComputers 
    ReturnValue = objComputer.JoinDomainOrWorkGroup(DomainName, ComputerAPass, ComputerALogin, OU, JOIN_DOMAIN + ACCT_CREATE) 
Next 

If Err.Number <> 0 Then 
    Set WshShell = CreateObject("WScript.Shell") 
    message = WshShell.Popup ("Unable to join " & SystemName & " to the domain! Please join manually.",, "Error", 0 + 16) 
Else 
    Set WshShell = CreateObject("WScript.Shell") 
    message = WshShell.Popup ("Domain joining was successful!",, "Success!", 0 + 64) 
End If 

Err.Clear 
0

Essayez ceci, je me suis adapté de http://www.tek-tips.com/viewthread.cfm?qid=1240726

strComputer = "ComputerB" 
strPassword = "mypassword" 
strDomain = "mydomain" 
strUser  = "myusername" 

Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _ 
    strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _ 
     strComputer & "'") 

ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, strPassword, strDomain & "\" & strUser, "ou=My_Computer_OU,DC=mycorp,dc=com, _ 
     JOIN_DOMAIN + ACCT_CREATE) 

If ReturnValue = 0 Then 
    MsgBox "Computer added to domain under old name without error. proceeding to change computer name. " 
Else 
    MsgBox "Computer not added to domain successfully. Return value: " & ReturnValue 
End If 
+0

Merci pour la réponse, mais j'ai fini par le découvrir moi-même. – VoidnessMD

+0

puis accepter l'une des réponses s'il vous plaît, sinon les gens qui veulent continuer à ouvrir cette question – peter

+0

J'ai essayé à l'origine, mais pour une raison quelconque, il m'a fait attendre 3 heures avant de pouvoir le vérifier. Et comme je n'avais pas 3 heures pour m'asseoir, j'ai naturellement oublié. Doit être vérifié maintenant. – VoidnessMD

Questions connexes