computer name rename


VB script บนระบบปฏิบัติการ Windows XP เพื่อเปลี่ยน computer name ให้เป็นไปตามเลข MAC address ของ LAN card

สามารถประยุกต์ติดตั้งให้ทำงานอัตโนมัติทุกครั้งที่บูทเครื่อง โดยนำไปเก็บไว้ในพื้นที่ที่ startup สั่งทำงานได้

ปัญหาโคลนนิง PC ที่ใช้ XP จะเจอว่า computer name ซ้ำกัน  admin ต้องมา rename computer name ทุกเครื่อง หากใช้ script นี้ ก็ไม่ต้องยุ่งยากไป rename อีก เพราะจะได้ตามเลข MAC address ของ LAN card ที่ใช้เลย สามารถใช้ได้ทุก PC ทั่วโลก เพราะ MAC address ของ LAN card จะไม่มีซ้ำกัน ยกเว้นเจอ LAN card ที่เสียเท่านั้น

แฟ้มเก็บไว้ที่ http://gotoknow.org/file/wipatwipat/RenameComputerMAC.vbs

หรือ  ftp://ftp.psu.ac.th/pub/tutor/RenameComputerMAC.vbs

ตัวอย่างการใช้งานจริง คือให้ copy แฟ้ม RenameComputerMAC.vbs ไปเก็บไว้ใน drive C:\

แล้วตั้งเวลาทำงานโดยคลิก start->All Programs->Accessories->System Tools->Scheduled Tasks

สั่ง Add Scheduled Task  เลือกโปรแกรม C:\RenameComputerMAC.vbs ให้ทำงานที่บูทเครื่อง When my computer starts

ใส่ username และ password ที่ทำงานระดับ administrator ให้เรียบร้อย

ผลคือทุกครั้งที่บูทเครื่องระบบจะเปลี่ยนชื่อโดยอัตโนมัติ

--วิภัทร

รายละเอียด source code ต้นฉบับ

'GetIPaddr.vbs - Check the IP address you are currently
'connected to the Internet with (or LAN IP).
'LabAdmin - Computer Center
' rev-2 15 May 2007 by KX
' rev 25 April 2007
'   Now works with Windows NT, 2K, XP

Option Explicit
Dim newName
newName = "_" + GetLastIPNo+"_"
RenameComputer(newName)

Function RenameComputer(Name)
    Dim strComputer
        Dim objWMIService, colComputers, objComputer
        strComputer = "."
        Set objWMIService = GetObject("winmgmts:" _
                & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

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

        For Each objComputer in colComputers
                err = objComputer.Rename(Name)
        Next
End Function

Function GetLastIPNo()
  Dim ws : Set ws = CreateObject("WScript.Shell")
  Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
  'Dim TmpFile : TmpFile = fso.GetSpecialFolder(2) & "\ip.txt"
  Dim TmpFile : TmpFile = "ip.txt"
  Dim ThisLine, IP, IPArr
  If ws.Environment("SYSTEM")("OS") = "" Then
    ws.run "winipcfg /batch " & TmpFile, 0, True
  Else
    ws.run "%comspec% /c ipconfig /all > " & TmpFile, 0, True
  End If
  With fso.GetFile(TmpFile).OpenAsTextStream
    Do While NOT .AtEndOfStream
      ThisLine = .ReadLine
      If InStr(ThisLine, "Physical Address") <> 0 Then IP = Mid(ThisLine, InStr(ThisLine, ":") + 2)
    Loop
    .Close
  End With
  'WinXP (NT? 2K?) leaves a carriage return at the end of line
  If IP <> "" Then
    If Asc(Right(IP, 1)) = 13 Then IP = Left(IP, Len(IP) - 1)
  End If

  IPArr = Split(IP,"-")
  GetLastIPNo = IPArr(0)+IPArr(1)+IPArr(2)+IPArr(3)+IPArr(4)+IPArr(5)

  fso.GetFile(TmpFile).Delete
  Set fso = Nothing
  Set ws = Nothing
End Function

คำสำคัญ (Tags): #script
หมายเลขบันทึก: 96523เขียนเมื่อ 16 พฤษภาคม 2007 11:22 น. ()แก้ไขเมื่อ 22 มิถุนายน 2012 05:56 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (18)
เยี่ยมมากเลยครับ อ.วิภัทร
ขอคารวะท่านเจ้าสำนัก
ขอบคุณพี่อิอิไม่เมื่อยก้นแว้ว

เจอปัญหานี่เหมื่อนกันครับ ขอขอบพระคุณมาก ครับ

โทษทีครับ อ่อนหัดประยุกต์ใช้อย่างไรครับ

โทษครับ อาจารย์

แล้วเอาโค้ดนี้ไปไว้ส่วนไหน path ไหน ของ windows ครับ

 ข้อดีอีกอย่างจะได้หาตัว คนที่ ติดไวรัสได้ด้วยนะครับ

ผมมีปัญหาอย่างที่พี่บอกเลยอะแล้วที่นี้คือว่าผมสงสัยว่าทำไมก่อนห้านนี้ผมเคยโกสไปแล้วแต่ไม่มีปัญหาแต่คอมชุดแรกผมมีแลนการด์อะแต่รอบนี้ไม่มีแลนการด์เป็นออนบอดร์อะท่าหากซื้อแลนการด์มาใส่เพิ่มปัญหาที่มีจะหายไปหรือไม่ครับ
ชื่อเปลี่ยนได้ครับแต่พอจะแลนเกมระหว่างเครื่องไม่สามารถแลนกันได้คับอยากรู้สาเหตุครับช่วยบอกผมทีนะคับ  ขอบพระคุณเป็นอย่างสูงครับ

ลองตรวจสอบดูหมายเลข MAC address ของ PC แต่ละเครื่องว่าเหมือนกันหรือเปล่า ปรกติแล้วเลข MAC จะต้องไม่ซ้ำกันครับ

 --วิภัทร

สุดยอดท่านอาจารย์......(-/|\-)
ผมประสบปัญหานี้อยู่พอดี ขอบคุณอย่างสูงครับ

ตอนนี้ผมใช้ bitdefender ของแท้มีลิขสิทธิ แต่ผมจะหา bitdefender enterprise manage ได้ที่ไหนครับ อยากได้มาใช้ที่ทำงานเพราะจะได้ควบคุมการแสกนได้ง่ายขึ้น

ไม่ทราบเหมือนกันครับ คือว่าปัจจุบันผมใช้แต่ free AVG ครับ

--วิภัทร

จานคับ ได้ยินเรื่องของหนอน endfix.vbs มะ

ผมนิยมใช้แต่ลินุกซ์ ไม่ค่อยยุ่งกะวินโดวส์ จึงไม่คุ้นกะ endfix.vbs ครับ

--วิภัทร

คุณวิภัทรครับ มี VB script สำหรับเปลี่ยน computer name ให้เลข MAC address ของ LAN card สำหรับ Windows 7 หรือไม่ครับ ผมลองนำไปใช้กับ Windows 7 แล้ว computer name มันเปลี่ยนเป็น _000000000000_ เหมือนกันทุกเครื่องอ่ะครับ ขอบคุณครับ

คุณวิภัทรครับ มี VB script สำหรับเปลี่ยน computer name ให้เลข MAC address ของ LAN card สำหรับ Windows 7 หรือไม่ครับ ผมลองนำไปใช้กับ Windows 7 แล้ว computer name มันเปลี่ยนเป็น _000000000000_ เหมือนกันทุกเครื่องอ่ะครับ ขอบคุณครับ

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท