|
|
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :: 领星动网 www.lxasp.com
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :: 主要用于电脑机房的全网GHOST后的自动更改设置
- :: 支持一台电脑有多张网卡(最多5块网卡)的机器
- :: 使用方法:
- :: 一、编辑好IP.BAT文件中的“机名、MAC、IP”等列表信息
- :: (请事先收集好你的机房的“机名”“MAC”等信息)
- :: 二、在制作GHOST 镜像文件前,复制IP.BAT文件到系统盘任意目录
- :: (例如 C:\ 或 C:\Windows 等)并双击此IP.BAT文件
- :: 三、进入DOS或光盘WINPE 运行 GHOST,创建系统盘的GHO镜像文件
- :: 四、进行机房的全网 GHOST,完成后会自动运行IP.BAT并自动重启
- :: 五、检查机房中的每台机器是否正确设置了“机名”和“IP”信息
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- @ECHO OFF
- @cls
- ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::
- ECHO :: GHOST完成后根据网卡MAC自动设置机名和IP的批处理 ::
- ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::
- ::::清空环境变量
- Set IPAddress=
- Set strMac=
- Set MacAddress=
- Set CName=
- Set scfile=
- Set sc=
- Set MacWMIC=
- Set ConnName=
- If not "%1"=="run" Goto setboot
- cd/d %temp%
- REM ::::请手动修改列表
- ECHO [ComputerName] [MacAddress] [IPAddress] >iplist.txt
- ECHO LX001 00-04-01-02-09-90 192.168.1.1 >>iplist.txt
- ECHO LX002 00-04-01-02-09-91 192.168.1.2 >>iplist.txt
- ECHO LX003 00-04-01-02-09-92 192.168.1.3 >>iplist.txt
- ECHO LX004 00-04-01-02-09-93 192.168.1.4 >>iplist.txt
- ECHO LXASP 00-03-FF-93-39-9F 192.168.0.10 >>iplist.txt
- REM ::::请手动修改子网掩码
- Set mask=255.255.255.0
- REM ::::请手动修改默认网关
- Set gway=192.168.0.1
- ECHO :::: 开始查找网卡 ::::
- ::::获取机器的TCP/IP 配置
- if exist ipconfig.txt del ipconfig.txt
- ipconfig /all >ipconfig.txt
- ::::分离出机器的物理地址,并保存到 ( phyaddr.txt) 文件中
- if exist phyaddr.txt del phyaddr.txt
- if exist phyaddr1.txt del phyaddr1.txt
- find "Physical Address" ipconfig.txt >phyaddr.txt
- Set sc=1
- Set scfile=phyaddr.txt
- goto scan
- ::::多网卡时,扫描每个网卡MAC地址
- :rescan1
- Set sc=%sc%1
- Set scfile=phyaddr1.txt
- find /v "%strMac%" phyaddr.txt >%scfile%
- Goto scan
- :rescan2
- Set sc=%sc%1
- Set scfile=phyaddr.txt
- find /v "%strMac%" phyaddr1.txt >%scfile%
- Goto scan
- :scan
- ::::从(c:\phyaddr.txt)文件中取得物理地址字符串,并赋给变量"MacAddress"
- for /f "skip=2 tokens=12" %%M in (%scfile%) do set strMac=%%M
- ::::以变量"strMac"为关键字搜索(iplist.txt)中相同的字符串行,并保存到(PCCfg.txt)
- find "%strMac%" iplist.txt >PCCfg.txt
- ::::找出机器名(从"PCCfg.txt"中分离出 机器名字段,并赋给变量"CName")
- for /f "skip=2 tokens=1" %%N in (PCCfg.txt) do set CName=%%N
- if not "%CName%"=="" Goto found
- ::::支持最多扫描5个网卡
- If "%sc%"=="11111" Goto failed
- If "%sc%"=="1" Goto rescan1
- if %scfile%==phyaddr.txt Goto rescan1
- if %scfile%==phyaddr1.txt Goto rescan2
- :found
- ECHO 本机 MAC: %strMac%
- ECHO 目标名称: %CName%
- ::::显示IP地址. (从"PCCfg.txt"中分离出 IP地址字段,并赋给变量"IPAddress")
- for /f "skip=2 tokens=3" %%I in (PCCfg.txt) do set IPAddress=%%I
- ECHO 目标地址: %IPAddress%
- ::::显示网卡MAC地址.(从"PCCfg.txt"中分离出 MAC地址字段,并赋给变量"MacAddress")
- for /f "skip=2 tokens=2" %%M in (PCCfg.txt) do set MacAddress=%%M
- ECHO 目标 MAC: %MacAddress%
- ::::创建注册表文件
- ::::用变量"%CName%"去替换实际的机器名
- ECHO Windows Registry Editor Version 5.00 >PCName.reg
- ECHO.>>PCName.reg
- ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] >>PCName.reg
- ECHO "ComputerName"="%CName%" >>PCName.reg
- ECHO.>>PCName.reg
- ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>PCName.reg
- ECHO "NV Hostname"="%CName%" >>PCName.reg
- ECHO "Hostname"="%CName%" >>PCName.reg
- ECHO :::: 正在更改设置 ::::
- REM ::::导入注册表文件。用的时候把" :: "去掉
- regedit /s PCName.reg
- ::::找出MAC地址所对应的连接名称
- for /f "tokens=1,2,3,4,5,6 delims=-" %%A in ("%MacAddress%") do set MacWMIC=%%A:%%B:%%C:%%D:%%E:%%F
- WMIC NIC WHERE "MACAddress='%MacWMIC%' AND NetConnectionID!=NULL" GET NetConnectionID /value >phyaddr.txt
- WMIC NIC WHERE "MACAddress='%MacWMIC%' AND NetConnectionID!=NULL" GET NetConnectionID /value >phyaddr.txt
- Type phyaddr.txt >phyaddr1.txt
- for /f "skip=2 tokens=2* delims==" %%A in (phyaddr1.txt) do set ConnName=%%A
- Echo 连接名称: %ConnName%
- REM ::::修改IP地址。用的时候把" :: "去掉
- netsh interface ip set address name="%ConnName%" source=static addr=%IPAddress% mask=%mask% gateway=%gway% gwmetric=1
- ECHO :::: 准备重启 ::::
- setlocal
- ::::删除临时文件
- echo [version] > ipdel.inf
- echo signature=$chicago$ >> ipdel.inf
- echo [defaultinstall] >> ipdel.inf
- echo delfiles=delfiles1 >> ipdel.inf
- echo delfiles=delfiles2 >> ipdel.inf
- echo [destinationdirs] >> ipdel.inf
- echo delfiles1=16391 >> ipdel.inf
- echo delfiles2=01 >> ipdel.inf
- echo [delfiles1] >> ipdel.inf
- echo ip.lnk,,,1 >> ipdel.inf
- echo [delfiles2] >> ipdel.inf
- echo PCCfg.txt,,,1 >> ipdel.inf
- echo PCName.reg,,,1 >> ipdel.inf
- echo ipconfig.txt,,,1 >> ipdel.inf
- echo iplist.txt,,,1 >> ipdel.inf
- echo phyaddr1.txt,,,1 >> ipdel.inf
- echo phyaddr.txt,,,1 >> ipdel.inf
- RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\ipdel.inf
- del ipdel.inf
- ::::准备重启的文件
- echo [version] > reboot.inf
- echo signature=$chicago$ >> reboot.inf
- echo [defaultinstall] >> reboot.inf
- REM ::::立即重启。用的时候把" :: "去掉
- RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 1 .\reboot.inf
- del reboot.inf
- Goto end
- :setboot
- Echo [Version] >ipstart.inf
- Echo Signature="$CHICAGO$" >>ipstart.inf
- Echo [DefaultInstall] >>ipstart.inf
- Echo UpdateInis = AddLink >>ipstart.inf
- Echo [AddLink] >>ipstart.inf
- Echo setup.ini, progman.groups,, "group1=""%%16391%%""" >>ipstart.inf
- Echo setup.ini, group1,,"""IP"",""""""%%01%%\ip.bat"""" run"",,,,"""",""ip.bat""" >>ipstart.inf
- RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\ipstart.inf
- del ipstart.inf
- Echo 完成在“开始”菜单的“启动”中创建快捷方式。
- Echo 请在此之后使用GHOST创建此分区的GHO镜像文件。
- pause
- Goto End
- :failed
- ECHO !!!! 查找网卡失败 !!!!
- :end
复制代码
[ 本帖最后由 pk4321 于 2007-10-13 03:32 PM 编辑 ] |
|