问题如标题:域环境中,如何远程更改客户端的计算机名和IP地址
更改IP的脚本如下,用了后,只是更改了远程计算机的IP地址和子网掩码,接着报错。(这可能是IP地址更改后,网段发生变化,无法通讯所致。
但更改远程客户端的计算机名的脚本无法成功。
更改IP地址的VBS代码如下:
Set objShell = CreateObject("Wscript.Shell")
IP = InputBox ("输入新的IP地址","IP地址")
NM="255.255.255.0" '子网掩码
GW=left(IP,8) & "1" '网关
MDNS="10.10.10.10" '首选DNS
SDNS="10.10.10.30" '备用DNS
msgbox ChangeIP(IP,NM,GW,MDNS,SDNS)
Function ChangeIP(IP, NM, GW, MDNS, SDNS)
Dim strComputer, objWMIService, colNetAdapters, strIPAddress, strSubnetMask
Dim strGateway, strGatewaymetric, strDNS, objNetAdapter, errEnable, errGateways, errDNS
strComputer = "RemotePCName" '远程计算机名
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress=Array(IP)
strSubnetMask=Array(NM)
strGateway=Array(GW)
strDNS = Array(MDNS, SDNS)
strGatewaymetric = Array(1)
For Each objNetAdapter In colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
If errEnable = 0 And errGateways = 0 And errDNS = 0 Then
ChangeIP = "设置成功"
Else
If errEnable = 0 Then
ChangeIP = "IP地址和子网掩码设置成功, "
Else
ChangeIP = "IP地址或子网掩码设置失败, "
End If
If errGateways = 0 Then
ChangeIP = ChangeIP & "默认网关设置成功, "
Else
ChangeIP = ChangeIP & "默认网关设置失败, "
End If
If errDNS = 0 Then
ChangeIP = ChangeIP & "DNS设置成功"
Else
ChangeIP = ChangeIP & "DNS设置失败"
End If
End If
Next
End Function
更改计算机名的VBS代码如下:
Dim reval
Set objnet = CreateObject ("WScript.Network")
Set R = CreateObject("WScript.Shell")
reval = InputBox ("当前的计算机名是:" & objnet.ComputerName,"输入新的计算机名")
On Error Resume Next
strComputer = "RemotePCName" '远程计算机名
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputers
errReturn = ObjComputer.Rename (reval)
If reval <> "" Then
return=MsgBox ("你确定要重起计算机吗?",vbokcancel+vbexclamation,"注意!")
If return=vbok Then
R.run("Shutdown.exe -r -t 0")
End if
End If
Next
大家看一下错误在什么地方,我想有可能是权限的问题,但不知如何处理。在此先谢谢大家了!