将PC重命名为序列号

时间:2009-11-05 20:17:21

标签: vbscript windows-xp

我正在尝试制作一个脚本,将PC重命名为序列号。我对VB不太满意,但我已经能够将足够的代码放在一起读取序列号,但我不知道在哪里写它。

以下是我目前的情况:

    strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")


Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")

For each objBIOS in colBIOS
  WScript.Echo "SERIAL=" & objBIOS.SerialNumber
Next

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我怀疑你可以通过WMI更改计算机名称。有一个Windows API调用here

答案 1 :(得分:0)

您可以更改编辑Windows注册表的计算机名称。 请谨慎使用此代码。

此代码仅用于教育目的,我建议您使用SetComputerNameEx函数而不是脚本来执行这些任务

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")
For each objBIOS in colBIOS
StrNewPCName=objBIOS.SerialNumber
Next
Set MyShell= CreateObject ("WSCript.shell")
StrCurrentControlSet = "HKLM\SYSTEM\CurrentControlSet\"
StrTcpipParams = StrCurrentControlSet & "services\Tcpip\Parameters\"
StrComputerName = StrCurrentControlSet & "Control\ComputerName\"
With MyShell
.RegDelete StrTcpipParams & "Hostname"
.RegDelete StrTcpipParams & "NV Hostname"
.RegWrite StrComputerName & "ComputerName\ComputerName", StrNewPCName
.RegWrite StrComputerName & "ActiveComputerName\ComputerName", StrNewPCName
.RegWrite StrTcpipParams & "Hostname", StrNewPCName
.RegWrite StrTcpipParams & "NV Hostname", StrNewPCName
End With