中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 请教一个改IP+计算机名的VBS 上一主题 | 下一主题
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『楼 主』:  请教一个改IP+计算机名的VBS



  Quote:
Oshell = CreateObject("WScript.Shell")
Set Fso = CreateObject("Scripting.FileSystemObject")
set wshshell = wscript.CreateObject("wscript.shell")
On Error Resume Next
Dim IP,NetMask,Gateway,DNS1,DNS2,DNS3,DNS4,Name
cmpnmnum=3
Gateway="192.168.10.254"
DNS1="192.168.10.21"
DNS2="192.168.11.21"
DNS3="202.160.241.21"
DNS4="98.160.10.101"

inp=Inputbox ("请输入机号")
if (len(inp)<>(cmpnmnum)) then
  msgbox("输入错误")
  oShell.run "C:\s.vbs",0, false
  wscript.quit
end if

area="LN"
area=UCase(area)
num=right(inp,cmpnmnum)

   IF (num < 201) THEN
     IP="192.168.10."+cstr(cint(num))
     if (num < 101) THEN
       NetMask="255.255.254.0"
     else
       NetMask="255.255.254.0"
     end if
   ELSE
     IP="192.168.11."+cstr(cint(num)-200)
     NetMask="255.255.248.0"
  END IF

Name=area+cstr(num)
ipxz=1
for i = 1 to cmpnmnum
ipxz=ipxz*10
Next
IPX=asc(area)*ipxz+num

'''''''''''''''''''''''''''''''''''''''''''''''''''''''
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array(IP)
strSubnetMask = Array(NetMask)
strGateway = Array(Gateway)
strDNS = Array(DNS1,DNS2,DNS3,DNS4)
For Each objNetAdapter in colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
Next

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
For Each objComputer in colComputers
ObjComputer.Rename(Name)
Next
Set objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")
objNetworkSettings.SetIPXVirtualNetworkNumber(IPX)

我想把上面输入的机号加上LN写这下面这段注册表里面

  Quote:
ws.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\ComputerName\ActiveComputerName\ComputerName",Name,"REG_SZ"
ws.RegWrite "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname",Name,"REG_SZ"
ws.RegWrite "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Hostname",Name,"REG_SZ"

[ Last edited by yhshiro on 2008-4-13 at 02:25 PM ]

2008-4-13 10:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

Set Oshell = CreateObject("WScript.Shell")
Set Fso = CreateObject("Scripting.FileSystemObject")
Set wshshell = wscript.CreateObject("WScript.Shell")
on Error Resume Next
Dim
IP,NetMask,Gateway,DNS1,DNS2,DNS3,DNS4,Name
cmpnmnum = 3
Gateway = "192.168.10.254"
DNS1 = "192.168.10.21"
DNS2 = "192.168.11.21"
DNS3 = "202.160.241.21"
DNS4 = "98.160.10.101"

inp = InputBox ("请输入机号")
If (Len(inp) <> (cmpnmnum)) Then
    MsgBox
"输入错误"
    oShell.run "C:\s.vbs",0, False
   
wscript.quit
End If

area = "LN"
area = UCase(area)
num = Right(inp,cmpnmnum)

If (num < 201) Then
   
IP = "192.168.10." + CStr(CInt(num))
   
If (num < 101) Then
        
NetMask = "255.255.254.0"
    Else
        
NetMask = "255.255.254.0"
    End If
Else
   
IP = "192.168.11." + CStr(CInt(num) - 200)
   
NetMask = "255.255.248.0"
End If

Name = area + CStr(num)
ipxz = 1
For i = 1 To cmpnmnum
    ipxz = ipxz * 10
Next
IPX = Asc(area) * ipxz + num

'''''''''''''''''''''''''''''''''''''''''''''''''''''''
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array(IP)
strSubnetMask = Array(NetMask)
strGateway = Array(Gateway)
strDNS = Array(DNS1,DNS2,DNS3,DNS4)
For Each objNetAdapter In colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
   
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
   
errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
Next

Set
objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer In colComputers
    ObjComputer.Rename(Name)
Next
Set
objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")
objNetworkSettings.SetIPXVirtualNetworkNumber(IPX)

Dim Name
Name = "BM250"
Oshell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\ComputerName\ActiveComputerName\ComputerName",Name,"REG_SZ"
Oshell.RegWrite "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname",Name,"REG_SZ"
Oshell.RegWrite "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Hostname",Name,"REG_SZ"

2008-4-13 10:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  

做为VBS门外汉,我不发表任何评论,唯有一个字顶了!!!



批处理之家新域名:www.bathome.net
2008-4-13 11:38
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 4 楼』:  

对不起说错了

我要的是这样的:
在运行后弹出来的对话框里输入几号~
然后在那几号前面加上再把那个字母和几号写入
Oshell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\ComputerName\ActiveComputerName\ComputerName",Name,"REG_SZ"

这里面

2008-4-13 13:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 5 楼』:  

是几号,还是机号?

2008-4-13 13:50
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 6 楼』:  

是机号

2008-4-13 15:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 7 楼』:  

还要在机号前面加上LN

2008-4-13 15:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 8 楼』:  

不是整个IP 吧?

num = Right(inp,cmpnmnum)是IP地址截取最后三位,是吧??

2楼的基本可以实现了啊。

顶多的问题是:IP地址后三位不全是数字。例如:192.168.0.1等。

2008-4-13 15:35
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 9 楼』:  

Dim Name
Name = "BM" & InputBox("请输入机号:","机号")


2008-4-13 16:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: