Rename and Reboot Machine

Im trying to write this script that will rename and reboot the machine. The first portion shown runs fine, the dialog box comes up and I enter in my new pc name.  The second part is the vb command to reboot the machine, it actually calls a batch file. The script runs the first portion and then ends.  However if I take the second half and create a separate vb script it runs fine.

I have two questions:

1. How can I get the entire script to run? Am I missing something?
2. Is there any way I can create a list box rather than an Input Box and prepopulate the listbox with a list of names?
Name = InputBox("Enter the new computer name below and click OK to continue","Rename: Step 1")
 
Password = "password"
Username = "admin"
 
Set objWMIService = GetObject("Winmgmts:root\cimv2")
 
' Call always gets only one Win32_ComputerSystem object.
For Each objComputer in _
   objWMIService.InstancesOf("Win32_ComputerSystem")
 
       Return = objComputer.rename(Name,Password,User)
       If Return <> 0 Then
          WScript.Echo "Rename failed. Error = " & Err.Number
       Else
          WScript.Echo "Rename succeeded." & " Reboot for new name to go into effect"
       
        Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate,(RemoteShutdown)}//" & mname).ExecQuery("select * from Win32_OperatingSystem where Primary=true")
        for each OpSys in OpSysSet
            OpSys.Reboot()
next
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("%comspec% /K C:\DemoUtilities\Installs\Windows\Rename_machine\shutdown.bat"), 1, True
end if
next

Open in new window

dlnewman70Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

nailggCommented:
Hi dlnewman70;

I debugged your code in vb6, and found some little mistakes.

For example the dimension you defined as "Return" is not a suitable word to being a dimension name. Change it as "ReturnX" for example.

There is a property named as "Name" too, you must change it too.

I hope these can help you.
0
dlnewman70Author Commented:
Found solution

Dim Text, Title
Dim WshNetwork         ' Object variable
Text = "Networking information" & vbCrLf & vbCrLf
Title = "Rename Hostname?"
 
' Create a new WshNetwork object to access network properties.
Set WshNetwork = WScript.CreateObject("WScript.Network")
 
Text = Text & "Computer name : " & WshNetwork.ComputerName & vbCrLf
Text = Text & "Domain : " & WshNetwork.UserDomain & vbCrLf
Text = Text & "User name : " & WshNetwork.UserName & vbCrLf & vbCrLf
Text = Text & "Do you want to rename this computer?"
 
If MsgBox(Text, vbYesNo + vbQuestion, Title) = vbyes Then
        Dim strComputerName, objWMIService, objComputer, returnCode
 
        strComputerName = InputBox("Enter a new machine name for this computer:", "Rename Computer")
 
        If strComputerName <> "" Then 
 
                Set objWMIService = GetObject("Winmgmts:root\cimv2") 
 
                ' Call always gets only one Win32_ComputerSystem object. 
                For Each objComputer in objWMIService.InstancesOf("Win32_ComputerSystem")
                        ReturnCode = objComputer.Rename(strComputerName) 
                Next
                If ReturnCode <> 0 Then
                        MsgBox "There was a problem changing the computer name.  System error code : " & ReturnCode
                Else
                        If MsgBox("Changes made.  Do you wish to restart the computer?", vbYesNo + vbQuestion, Title) = vbyes Then
                                                                                                                                'Set objShell = WScript.CreateObject("WScript.Shell")
                                'objShell.Run "rundll32 shell32.dll,SHExitWindowsEx 2", 1, False
                                                                                                                                WScript.Echo "Rebooting..."
                                                                                                                                set objWSHShell = WScript.CreateObject("WScript.Shell")
                                                                                                                                objWSHShell.Run "shutdown.exe /r"
                        Else 
                                MsgBox "You must restart computer for changes to take effect"
                        End If 
                End If 
        End If 
End If

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.