Solved

I need a VB script that uses the RenComp.exe tool

Posted on 2004-04-05
15
945 Views
Last Modified: 2008-03-03
Would like to add sort of a GUI to RenComp.exe.  Script should
1 – Ask for old computer name
2 – Then ask for new computer name
3 – Rename computer name and give a pop up confirmation
4- Prompt for next computer name and log all successful & unsuccessful attempts

Old script notes:

Dim objExcel, strPathExcel, objFile
Dim fso, ts, fso2, ts2
Const ForWriting = 8
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set objExcel = CreateObject("Excel.Application")
strPathExcel = "\\DS\ADLookup\ADLookupR.xls"
objExcel.Workbooks.open strPathExcel
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
Set SH = CreateObject("WScript.Shell")

row = 1

newName = ""

Do While Trim(objSheet.cells(row, 1).Value) <> ""
   CName = objSheet.cells(row, 1)
   newName = Trim(objSheet.cells(row, 5).Value)
   
   If objSheet.cells(row, 6) <> "CHANGED" Then

      SH.Run "cmd /c RENCOMP " + CName + " " + newName + " >c:\temp.tmp", 1, True

      Set ts = fso.OpenTextFile("c:\temp.tmp", ForReading, True)
      a = ts.ReadLine()
      ts.Close

      If InStr(a, "Failed") > 0 Then
         MsgBox ("Failed to rename " + CName + " to " + newName + "!")
         objSheet.cells(row, 6) = ""
         objSheet.cells(row, 7) = ""
      Else
         MsgBox ("Successfully renamed " + CName + " to " + newName + "!")
         objSheet.cells(row, 6) = "CHANGED"
         objSheet.cells(row, 7) = Trim(CStr(Now))
      End If
   End If

   row = row + 1
Loop

objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
MsgBox ("Script complete.")

0
Comment
Question by:Roebuck1967
15 Comments
 
LVL 57

Expert Comment

by:Pete Long
ID: 10760918
No offence - but why arnt you asking this in the VB TA?
0
 

Author Comment

by:Roebuck1967
ID: 10760950
Because only one person can answer this question and he knows where to find it.
0
 

Author Comment

by:Roebuck1967
ID: 10761253
Feel free to move it to VB
0
 
LVL 16

Expert Comment

by:The--Captain
ID: 10761331
looks like someone beat me to it...  Hope you find more contributions here in VB.

Cheers,
-Jon

0
 
LVL 11

Expert Comment

by:YohanShminge
ID: 10761752
Hi guys!

Yeah, I was looking in the Networking section, Roebuck1967, but I didnt see your new question!  I've been thinking you might move these over to VB so you'd be more likely to get help, as long as they're not too networking-involved.  Buy anyway...

This new script you want, it sounds easy enough, but let can you clarify a few things...
1) Do you no longer want to use the excel file as your source for computer names?
2) How do you want to log attempts? Excel or text file?
3) How many times should the script prompt for computer names?
0
 

Author Comment

by:Roebuck1967
ID: 10762297
YohanShminge,
1 - Would like to start with a fresh excel file
2 - Via excel
3 - Prompt until cancel is selected

Would loke to have this a click option on my computer that would exicute
0
 
LVL 11

Expert Comment

by:YohanShminge
ID: 10762385
OK, I think this is what you want.

--------------------------------

Dim objExcel, strPathExcel, objFile
Dim fso, ts, fso2, ts2
Const ForReading = 1
Set objExcel = CreateObject("Excel.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
Set SH = CreateObject("WScript.Shell")

strPathExcel = "C:\changelog.xls"

objExcel.Workbooks.open strPathExcel
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)

Do
   currentC = InputBox("Please enter the current computer name.")
   If currentC = "" Then
      objExcel.ActiveWorkbook.Close
      WScript.Quit
   End If
   newC = InputBox("Please enter the new computer name.")
   If newC = "" Then
      objExcel.ActiveWorkbook.Close
      WScript.Quit
   End If

   SH.Run "cmd /c C:\RENCOMP " + currentC + " " + newC + " >c:\temp.tmp", 1, True

   Set ts = fso.OpenTextFile("c:\temp.tmp", ForReading, True)
   a = ts.ReadLine()
   ts.Close

   For row = 1 To 10000
      If objSheet.cells(row, 1) = "" Then Exit For
   Next

   If InStr(a, "Failed") > 0 Then
      MsgBox ("Failed to rename " + currentC + " to " + newC + "!")
      objSheet.cells(row, 1) = "FAILED"
      objSheet.cells(row, 2) = currentC
      objSheet.cells(row, 3) = newC
      objSheet.cells(row, 4) = Trim(CStr(Now))
   Else
      MsgBox ("Successfully renamed " + currentC + " to " + newC + "!")
      objSheet.cells(row, 1) = "CHANGED"
      objSheet.cells(row, 2) = currentC
      objSheet.cells(row, 3) = newC
      objSheet.cells(row, 4) = Trim(CStr(Now))
   End If
   objExcel.ActiveWorkbook.Save
Loop Until currentC = ""
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 

Author Comment

by:Roebuck1967
ID: 10764565
YohanShminge

I receive the following error after I enter the new computer name
Line 28
Char 4
Error: Input past end file
code: 800A003E
0
 

Author Comment

by:Roebuck1967
ID: 10764608
YohanShminge

Scratch that last question - I have it working.

Would kike to tweek things a bit


1) When It prompts for the second computer name can you have "TAKING-" (without the quotes) in the field?
2) Anywhat to have the script promt Yes or No to remove the old name from the domain?

Thanks
0
 
LVL 11

Accepted Solution

by:
YohanShminge earned 500 total points
ID: 10765934
1) Replace these lines:

   currentC = InputBox("Please enter the current computer name.")
   If currentC = "" Then
      objExcel.ActiveWorkbook.Close
      WScript.Quit
   End If
   newC = InputBox("Please enter the new computer name.")
   If newC = "" Then
      objExcel.ActiveWorkbook.Close
      WScript.Quit
   End If

With these to add TAKING-

   currentC = InputBox("Please enter the current computer name.", "Old Name")
   If currentC = "" Then
      objExcel.ActiveWorkbook.Close
      WScript.Quit
   End If
   newC = InputBox("Please enter the new computer name.", "New Name", "TAKING-")
   If newC = "" Then
      objExcel.ActiveWorkbook.Close
      WScript.Quit
   End If

2) I don't have RENCOMP here right now to check, but is it possible to change name without removing the old?  If so, it would be easy to add to the code, just let me know.
0
 

Author Comment

by:Roebuck1967
ID: 10766466
YohanShminge does it again.  A million thanks!

0
 

Author Comment

by:Roebuck1967
ID: 10766471
YohanShminge

You have done it again.  A million thanks!
0
 
LVL 11

Expert Comment

by:YohanShminge
ID: 10768647
So I take it the script worked?  That's great!
0
 

Author Comment

by:Roebuck1967
ID: 11000397
YohanShminge,

Long time - Hope all is well.  I'm posting a new question today.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now