Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

VBscript to rename pc, join domain and add pc to ou 1

Status
Not open for further replies.

ryansumm

Technical User
May 8, 2008
2
GB
Hello Guys
Im having an issue with a thread i picked up (thread329-1240726 ) the script looks like exactly what i need but when runing i get an error.

line 42
char: 1
error: invaid method parameter(S)
code 8004102f
source: swbemobjectex

im new to this and i dont seem to be getting anywhere

many thanks

Ryan

code im using is at the bottom:

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
Dim message
Dim IP
strDomain = gateway
strUser = xxx
strPassword = xxx

Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName

Set objWMIService = GetObject ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")

title = "Join computer to domain"
message = "Please enter computer name. Leave blank or press cancel to quit." & vbCrLf & vbCrLf & "Generated name: " & generatedName
newComputerName = InputBox(message, title)


If newComputerName = "" Then
Wscript.quit
End If

areYousure = MsgBox("Are you sure you want t0 add computer to domain with name:" & vbCrLf & vbCrLf & newComputerName, vbYesNo + vbQuestion,"Add computer to domain")

If areYouSure = "7" Then
MsgBox "Exiting script.",vbInformation
Wscript.quit
End If

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

ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, strPassword, strDomain & "\" & strUser, "ou=CSE Managed Network,ou=Stations,DC=gateway,dc=local", _
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

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colComputers = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")


For Each objComputer in colComputers
MsgBox "About to rename computer to: " & newComputername
ErrCode = objComputer.Rename(newComputerName, strPassword, strUser)
If ErrCode = 0 Then
MsgBox "Computer renamed correctly."
Else
MsgBox "Eror changing computer name. Error code: " & ErrCode
End If

Next
 
Replace this:
strDomain = gateway
strUser = xxx
strPassword = xxx
with this:
strDomain = "gateway"
strUser = "xxx"
strPassword = "xxx"

Tip: use the Option Explicit instruction

Hope This Helps, PH.
FAQ219-2884
FAQ181-2886
 
Many thanks That worked! cant belive it was bloddy " symbols
many thanks PHV!!!!

also how would i get the pc to restart automatically after the script has run ie reboot automatically after 120sec any help would be greatly appricated :)
 
Try:

Code:
wscript.sleep 120
set objWSHShell = WScript.CreateObject("WScript.Shell")
objWSHShell.Run "shutdown.exe /r /m \\" & strcomputer

where strComputer is your netbios name.
This is the syntax for rebooting a remote machine - you may need different 'shutdown.exe' syntax to run local - not sure.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top