none
用脚本能否实现给对应的计算机名加上对应的静态IP地址? RRS feed

  • 问题

  • 在单域环境下
    例如:
    当计算机名为we-1时的IP地址为192.168.1.4,子网掩码为255.255.255.0,网关为192.168.1.1,DNS为192.168.1.2和192.168.1.1
    当计算机名为rw-3时的IP地址为192.168.1.9,子网掩码为255.255.255.0,网关为192.168.1.1,DNS为192.168.1.2和192.168.1.1
    当计算机名为tQ-8时的IP地址为192.168.1.15,子网掩码为255.255.255.0,网关为192.168.1.1,DNS为192.168.1.2和192.168.1.1
    脚本能搞定不?
    想法:把脚本加到开机脚本内自动判断,如果有静态IP的就跳过,没有静态IP的全按这规则来填入,几百台机器,不好手动,所以想批量。
    注:大多AD用户是在POWER USERS组里面的。
    关于DHCP:DHCP是给外来或者笔记本使用的,所以经常因为各方压力不够用而崩溃,所以想让经常用静态IP的机器不用DHCP来分配。
    2010年11月24日 5:30

全部回复

  • 脚本是指啥语法??是batch script 吗??如果是的话,可以!还得读取资料挡案(txt)
    http://pro.ctlok.com/2010/02/batch-file-bat-ip.html

    用VB也可以
    http://blog.blueshop.com.tw/hammerchou/archive/2006/08/05/35501.aspx


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年11月24日 8:59
  • 脚本是指啥语法??是batch script 吗??如果是的话,可以!还得读取资料挡案(txt)
    http://pro.ctlok.com/2010/02/batch-file-bat-ip.html

    用VB也可以
    http://blog.blueshop.com.tw/hammerchou/archive/2006/08/05/35501.aspx


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    http://pro.ctlok.com/2010/02/batch-file-bat-ip.html

    这个页面打不开。

    http://blog.blueshop.com.tw/hammerchou/archive/2006/08/05/35501.aspx

    这个不是C语言吗?
    我说的脚本指的是.VBS文件。
    2010年11月25日 2:22
  • dear,

    脚本语法不只有VBS,其实你可以一次把你的问题写清楚,这样可以让你的问题更快速的被解决,

    我贴的连结:
    http://pro.ctlok.com/2010/02/batch-file-bat-ip.html←这是Batch Script
    http://blog.blueshop.com.tw/hammerchou/archive/2006/08/05/35501.aspx←这是VB.NET

    并没有C语言

     

    若是要用VBS基本上是要用WMI修改,你可上google/百度搜寻网找找,搜寻关键字"set IP address vbs"

    http://www.google.com.tw/search?hl=&q=set+IP+address+vbs&sourceid=navclient-ff&rlz=1B3GGLL_zh-TWTW400TW400&ie=UTF-8

    http://www.baidu.com/s?wd=set+IP+address+vbs&n=2

    http://www.bleepingcomputer.com/forums/topic168516.html

    VBS读挡

    http://www.robvanderwoude.com/vbstech_files_ini.php


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年11月26日 1:04
  • dear,

    脚本语法不只有VBS,其实你可以一次把你的问题写清楚,这样可以让你的问题更快速的被解决,

    我贴的连结:
    http://pro.ctlok.com/2010/02/batch-file-bat-ip.html←这是Batch Script
    http://blog.blueshop.com.tw/hammerchou/archive/2006/08/05/35501.aspx←这是VB.NET

    并没有C语言

     

    若是要用VBS基本上是要用WMI修改,你可上google/百度搜寻网找找,搜寻关键字"set IP address vbs"

    http://www.google.com.tw/search?hl=&q=set+IP+address+vbs&sourceid=navclient-ff&rlz=1B3GGLL_zh-TWTW400TW400&ie=UTF-8

    http://www.baidu.com/s?wd=set+IP+address+vbs&n=2

    http://www.bleepingcomputer.com/forums/topic168516.html

    VBS读挡

    http://www.robvanderwoude.com/vbstech_files_ini.php


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    我把问题再描述一次吧

     

    公司电脑全都是在一个单域环境内,现在有的电脑是通过DHCP来获取IP地址上网的,有的电脑是手动设置的静态IP地址。

    现在想把一些原来是DHCP的改成手动的,量大了,所以想通过域控服务器上面的开机脚本来更改。

    通过几天的上网询问得到了一个结果,在开机脚本(这里是用的BAT文件)里面加上这句就行了,例如只有q1,w2,e5三台机器需要更改的话:

     

    if /i "%computername%" neq "q1" goto :next
    netsh interface ip set address name=本地连接 source=static addr=192.168.1.65 mask=255.255.255.0 gateway=192.168.1.1 gwmetric = 0
    netsh interface ip set dns name=本地连接 source=static addr=192.168.1.3 register=PRIMARY
    netsh interface ip add dns name=本地连接 addr=192.168.1.1 INDEX=2
    :next
    if /i "%computername%" neq "w2" goto :next
    netsh interface ip set address name=本地连接 source=static addr=192.168.1.55 mask=255.255.255.0 gateway=192.168.1.1 gwmetric = 0
    netsh interface ip set dns name=本地连接 source=static addr=192.168.1.3 register=PRIMARY
    netsh interface ip add dns name=本地连接 addr=192.168.1.1 INDEX=2
    :next
    if /i "%computername%" neq "e5" goto :next
    C:\WINDOWS\system32\netsh.exe interface ip set address name=本地连接 source=static addr=192.168.1.44 mask=255.255.255.0 gateway=192.168.1.1 gwmetric = 0
    C:\WINDOWS\system32\netsh.exe interface ip set dns name=本地连接 source=static addr=192.168.1.3 register=PRIMARY
    C:\WINDOWS\system32\netsh.exe interface ip add dns name=本地连接 addr=192.168.1.1 INDEX=2
    
    

     

    但最后发现,只执行第一行的“netsh interface ip set address name……"

    根本不执行第二行的DNS设置,原因未知。

    2010年11月26日 8:57
  • dear
    1.你贴的东西叫Batch Script(Batch File),跟VBS差很多。
    2.使用netsh 必须驱动网路卡,就是说要把网路卡接上HUB
    3.语法会看起来指执行第一行,表示第一行就失败,他应该会显示错误讯习,你应该把错误讯习描述出来,现在我只能用猜的,你试试把本地连接用引号包起来,如下。
    netsh interface ip set address name="本地连接" source=static addr=192.168.1.65 mask=255.255.255.0 gateway=192.168.1.1 gwmetric = 0
    netsh interface ip set dns name="本地连接" source=static addr=192.168.1.3 register=PRIMARY
    netsh interface ip add dns name="本地连接" addr=192.168.1.1 INDEX=2

    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年11月26日 16:39
  • dear
    1.你贴的东西叫Batch Script(Batch File),跟VBS差很多。
    2.使用netsh 必须驱动网路卡,就是说要把网路卡接上HUB
    3.语法会看起来指执行第一行,表示第一行就失败,他应该会显示错误讯习,你应该把错误讯习描述出来,现在我只能用猜的,你试试把本地连接用引号包起来,如下。
    netsh interface ip set address name="本地连接" source=static addr=192.168.1.65 mask=255.255.255.0 gateway=192.168.1.1 gwmetric = 0
    netsh interface ip set dns name="本地连接" source=static addr=192.168.1.3 register=PRIMARY
    netsh interface ip add dns name="本地连接" addr=192.168.1.1 INDEX=2

    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    首先,谢谢你能一直跟踪热心回复。

    一、很感谢你能告诉我BAT的全称;

    二、我是放在服务器端的开机脚本,所有客户端默认都执行,但不会跳出窗口,所以我也没办法看到错误讯息。

    三、我试着把引号打上,但还是没有执行,我甚至试着把第一行去掉,只执行DNS那一行,结果还是不行,所以肯定是语法有错误。

    netsh interface ip set dns name="本地连接" source=static addr=192.168.1.3 register=PRIMARY
    
    但我单独在本机执行时就不会出错,原因未知,所以上来问问。

    2010年11月27日 9:07
  • dear

    我在本机端执行那三行语法并未发生错误,

    这应该只能在本机端执行,我还不知要如何修改远端电脑的IP,我知道WMI可以修改远端电脑的机码(要有权限),但不知能否直接修改远端IP


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年11月27日 16:01
  • dear

    我在本机端执行那三行语法并未发生错误,

    这应该只能在本机端执行,我还不知要如何修改远端电脑的IP,我知道WMI可以修改远端电脑的机码(要有权限),但不知能否直接修改远端IP


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    但第一行就可以在远端执行成功的原因是?

    WMI也应该可以……但不知SYSTEM权限是否可行。

    2010年11月27日 16:17