|
我自己编写的根据mac来设置计算机名、ip、子网掩码、dns、网关、关闭屏保、防火墙)的批处理,执行完毕后15秒自动重启动
全部是指定的,所以不会有重复的可能,下面是指定192.168.0.1为网关的批处理,不同的自己修改吧
同目录下要事先准备好ip.txt(每台机子的mac地址列表和指定它的ip)
范例如下,红色的为指定ip,黄色的为指定的计算机名字,蓝色的是工作组,绿色的是mac地址,注意后面有个空格,这个列表可以通过lansee这个程序来获得
ip.txt192.168.16.101 |W01 |WORKGROUP |00.19.21.ED.7B.E5 |
192.168.16.2 |W02 |WORKGROUP |00.19.21.ED.80.8B |
192.168.16.3 |W03 |WORKGROUP |00.19.21.ED.81.2D |
192.168.16.4 |W04 |WORKGROUP |00.19.21.ED.7E.3F |
192.168.16.5 |W05 |WORKGROUP |00.19.21.ED.83.31 |
192.168.16.6 |W06 |WORKGROUP |00.19.21.ED.83.50 |
192.168.16.7 |W07 |WORKGROUP |00.19.21.ED.81.D9 | 批处理如下,我一般把这两个文件放到gho文件的启动文件夹中,哈哈,全自动-
- @echo off
- color 2e
- :findmac
- set mac=
- set 连接名=
- ipconfig /all >%temp%\wjh
- for /f "tokens=1,2,3,4,5,6,7,8,9,10,11 delims=: " %%i in ('findstr /i /c:"Physical Address" %temp%\wjh') do set macy=%%s
- for /f "tokens=1,2,3 delims=: " %%i in ('find "Ethernet adapter" %temp%\wjh') do set 连接名=%%k
- echo 当前机子的网卡物理地址为(%macy%)
- set mac=%macy:~0,2%.%macy:~3,2%.%macy:~6,2%.%macy:~9,2%.%macy:~12,2%.%macy:~15,2%
- echo 经过转换地址为(%mac%)
- set mask=255.255.255.0
- set dns1=202.100.192.68
- set dns2=202.100.199.8
- set gateway=192.168.0.1
- set linkname=%连接名:~0,-1%
- rem 不知道怎么搞的,就是在连接名后多一个空格,所以采用了%连接名:~0,-1%
- :jiancha
- set 程序运行目录=%cd%
- if exist ip.txt goto do
- cd /d %allusersprofile%
- cd "「开始」菜单\程序\启动"
- echo 当前目录为 %cd%
- if exist ip.txt goto do
- if not exist ip.txt goto error
- :do
- For /f "tokens=1,2,3,4 delims=| " %%i in (ip.txt) do If "%mac%"=="%%l" set ip=%%i
- For /f "tokens=1,2,3,4 delims=| " %%i in (ip.txt) do If "%mac%"=="%%l" set ygname=%%j
- For /f "tokens=1,2,3,4 delims=| " %%i in (ip.txt) do If "%mac%"=="%%l" set wg=%%k
- echo ****************************************************************************
- echo 根据本机网卡的物理mac(介质访问控制Media Access Control)地址
- echo ═══════════════════
- echo 当前 计算机名 为☆ %computername%
- echo ───────────────────
- echo 计算机名字应该是☆ %ygname%
- echo ───────────────────
- echo 本机的本地连接名 ☆ (%linkname%)
- echo ───────────────────
- echo 本机的 ip 应该是 ☆ %ip%
- echo ───────────────────
- echo 本机的子网掩码是 ☆ %mask%
- echo ───────────────────
- echo 网关的 ip 应该是 ☆ %gateway%
- echo ─────────────────── ╭═══════════╮
- echo 主dns 设定为 ☆ 202.103.224.68 ║程序作者 : wjh6088 ║
- echo ─────────────────── ║───────────║
- echo 备用dns 设定为 ☆ 202.103.225.68 ║2007年5月 于来宾卫校 ║
- echo ─────────────────── ╰═══════════╯
- echo 工作组 是 ☆ %wg%
- echo ═══════════════════
- if "%ip%" == "" goto error
- echo 数秒后将按照此表格设置计算机......
- ping 127.0.0.1 -n 6 >%temp%\yscx.yscx.txt
- echo ══════════════════════════════════════
- echo 正在设置IP地址及子网掩码
- netsh interface ip set address name="%linkname%" source=static addr=%IP% mask=%MASK%
- echo IP地址及子网掩码设置完成
- echo ══════════════════════════════════════
- echo 正在设置网关地址
- netsh interface ip set address name="%linkname%" gateway=%GATEWAY% gwmetric=0
- echo 网关地址设置完成
- echo ══════════════════════════════════════
- echo 正在设置主DNS地址
- netsh interface ip set dns name="%linkname%" source=static addr=%DNS1% register=PRIMARY
- echo 主DNS地址设置完成
- echo ══════════════════════════════════════
- echo 正在设置第二DNS地址
- netsh interface ip add dns name="%linkname%" addr=%DNS2% index=2
- echo 第二DNS地址设置完成
- echo ══════════════════════════════════════
- wmic computersystem where Name="%computername%" call JoinDomainOrWorkgroup Name="%wg%"
- if %errorlevel%==0 goto _success
- echo 改变工作组不成功
- echo ══════════════════════════════════════
- :_success
- echo 已经成功改变工作组为 "%wg%".
- echo ══════════════════════════════════════
- echo 正在修改计算机名字为 %ygname%
- ::::创建注册表文件
- @echo Windows Registry Editor Version 5.00 >%temp%\ComputerName.reg
- @echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] >>%temp%\ComputerName.reg
- @echo "ComputerName"="%ygname%" >>%temp%\ComputerName.reg
- @echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>%temp%\ComputerName.reg
- @echo "NV Hostname"="%ygName%" >>%temp%\ComputerName.reg
- @echo "Hostname"="%ygName%" >>%temp%\ComputerName.reg
- regedit /s %temp%\ComputerName.reg
- del %temp%\ComputerName.reg
- echo 成功修改计算机名为 %ygname%
- echo ══════════════════════════════════════
- echo 正在关闭xp防火墙
- net stop sharedaccess >nul
- echo 成功关闭了xp防火墙
- echo ══════════════════════════════════════
- :关闭屏幕保护
- echo 正在关闭屏幕保护
- if exist %temp%\screensaver.reg del %temp%\screensaver.reg
- echo REGEDIT4>>%temp%\screensaver.reg
- echo [HKEY_CURRENT_USER\Control Panel\Desktop]>>%temp%\screensaver.reg
- echo "SCRNSAVE.EXE"="">>%temp%\screensaver.reg
- regedit /s %temp%\screensaver.reg
- del %temp%\screensaver.reg
- echo 已经成功关闭屏幕保护
- echo ══════════════════════════════════════
- goto success
- :error
- echo ****************************************************************************
- echo 错误,没有发现ip.txt文件,或者在ip.txt中找不到本机的mac地址, 现在转为手动设置
- :shoudong
- if exist c:\netedit.reg del c:\netedit.reg
- echo 当前计算机名字为%computername%
- set /p ygname=[如需更改请输入新计算机名]
- set wg=workgroup
- set /p wg=[请输入工作组名字,回车默认为workgroup]
- set ip1=192.168.
- set /p ip2=[请输入本机ip地址后2段 192.168.
- set IP=%ip1%%ip2%
- set MASK=255.255.255.0
- set /p mask=[请输入子网掩码,回车默认为255.255.255.0]
- set gateway2=
- set /p gateway2=[请输网关ip,现在设置为%ip1%
- set gateway=%ip1%%gateway2%
- set linkname=本地连接
- set /p linkname=[请输入本地连接的名字,回车默认为本地连接,现在设置为%linkname%
- goto do
- :success
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo ╭═════════════════════════════════════╮
- echo ║ 操作成功, 计算机名字将在重新启动后生效! ║
- echo 正在清理用过的文件
- del %程序运行目录%\ip.txt
- del "%allusersprofile%\「开始」菜单\程序\启动\ip.txt"
- echo 数秒后重新启动计算机......
- ping 127.0.0.1 -n 6 >%temp%\yscx.yscx.txt
- del %temp%\yscx.yscx.txt
- del "%allusersprofile%\「开始」菜单\程序\启动\根据mac*.bat"|del %程序运行目录%\根据mac*.bat|shutdown -r -t 15
- :end
- exit
复制代码
[ 本帖最后由 wjh6088 于 2007-6-9 12:01 PM 编辑 ] |
|