找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3004|回复: 4

GHOST完成后根据网卡MAC自动设置机名和IP的批处理

[复制链接]
发表于 2007-10-13 15:31:09 | 显示全部楼层 |阅读模式
  1. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. :: 领星动网 www.lxasp.com
  3. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4. :: 主要用于电脑机房的全网GHOST后的自动更改设置
  5. :: 支持一台电脑有多张网卡(最多5块网卡)的机器
  6. :: 使用方法:
  7. :: 一、编辑好IP.BAT文件中的“机名、MAC、IP”等列表信息
  8. ::     (请事先收集好你的机房的“机名”“MAC”等信息)
  9. :: 二、在制作GHOST 镜像文件前,复制IP.BAT文件到系统盘任意目录
  10. ::     (例如 C:\ 或 C:\Windows 等)并双击此IP.BAT文件
  11. :: 三、进入DOS或光盘WINPE 运行 GHOST,创建系统盘的GHO镜像文件
  12. :: 四、进行机房的全网 GHOST,完成后会自动运行IP.BAT并自动重启
  13. :: 五、检查机房中的每台机器是否正确设置了“机名”和“IP”信息
  14. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  15. @ECHO OFF
  16. @cls
  17. ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::
  18. ECHO :: GHOST完成后根据网卡MAC自动设置机名和IP的批处理 ::
  19. ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::

  20. ::::清空环境变量
  21. Set IPAddress=
  22. Set strMac=
  23. Set MacAddress=
  24. Set CName=
  25. Set scfile=
  26. Set sc=
  27. Set MacWMIC=
  28. Set ConnName=

  29. If not "%1"=="run" Goto setboot

  30. cd/d %temp%

  31. REM ::::请手动修改列表
  32. ECHO [ComputerName] [MacAddress] [IPAddress] >iplist.txt
  33. ECHO LX001  00-04-01-02-09-90  192.168.1.1 >>iplist.txt
  34. ECHO LX002  00-04-01-02-09-91  192.168.1.2 >>iplist.txt
  35. ECHO LX003  00-04-01-02-09-92  192.168.1.3 >>iplist.txt
  36. ECHO LX004  00-04-01-02-09-93  192.168.1.4 >>iplist.txt
  37. ECHO LXASP  00-03-FF-93-39-9F  192.168.0.10 >>iplist.txt

  38. REM ::::请手动修改子网掩码
  39. Set mask=255.255.255.0
  40. REM ::::请手动修改默认网关
  41. Set gway=192.168.0.1

  42. ECHO :::: 开始查找网卡 ::::

  43. ::::获取机器的TCP/IP 配置
  44. if exist ipconfig.txt del ipconfig.txt
  45. ipconfig /all >ipconfig.txt

  46. ::::分离出机器的物理地址,并保存到 ( phyaddr.txt) 文件中
  47. if exist phyaddr.txt del phyaddr.txt
  48. if exist phyaddr1.txt del phyaddr1.txt
  49. find "Physical Address" ipconfig.txt >phyaddr.txt

  50. Set sc=1
  51. Set scfile=phyaddr.txt
  52. goto scan

  53. ::::多网卡时,扫描每个网卡MAC地址
  54. :rescan1
  55. Set sc=%sc%1
  56. Set scfile=phyaddr1.txt
  57. find /v "%strMac%" phyaddr.txt >%scfile%
  58. Goto scan

  59. :rescan2
  60. Set sc=%sc%1
  61. Set scfile=phyaddr.txt
  62. find /v "%strMac%" phyaddr1.txt >%scfile%
  63. Goto scan

  64. :scan
  65. ::::从(c:\phyaddr.txt)文件中取得物理地址字符串,并赋给变量"MacAddress"
  66. for /f "skip=2 tokens=12" %%M in (%scfile%) do set strMac=%%M

  67. ::::以变量"strMac"为关键字搜索(iplist.txt)中相同的字符串行,并保存到(PCCfg.txt)
  68. find "%strMac%" iplist.txt >PCCfg.txt

  69. ::::找出机器名(从"PCCfg.txt"中分离出 机器名字段,并赋给变量"CName")
  70. for /f "skip=2 tokens=1" %%N in (PCCfg.txt) do set CName=%%N

  71. if not "%CName%"=="" Goto found
  72. ::::支持最多扫描5个网卡
  73. If "%sc%"=="11111" Goto failed
  74. If "%sc%"=="1" Goto rescan1
  75. if %scfile%==phyaddr.txt Goto rescan1
  76. if %scfile%==phyaddr1.txt Goto rescan2
  77. :found
  78. ECHO 本机 MAC: %strMac%
  79. ECHO 目标名称: %CName%

  80. ::::显示IP地址. (从"PCCfg.txt"中分离出 IP地址字段,并赋给变量"IPAddress")
  81. for /f "skip=2 tokens=3" %%I in (PCCfg.txt) do set IPAddress=%%I
  82. ECHO 目标地址: %IPAddress%

  83. ::::显示网卡MAC地址.(从"PCCfg.txt"中分离出 MAC地址字段,并赋给变量"MacAddress")
  84. for /f "skip=2 tokens=2" %%M in (PCCfg.txt) do set MacAddress=%%M
  85. ECHO 目标 MAC: %MacAddress%

  86. ::::创建注册表文件
  87. ::::用变量"%CName%"去替换实际的机器名
  88. ECHO Windows Registry Editor Version 5.00 >PCName.reg
  89. ECHO.>>PCName.reg
  90. ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] >>PCName.reg
  91. ECHO "ComputerName"="%CName%" >>PCName.reg
  92. ECHO.>>PCName.reg
  93. ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>PCName.reg
  94. ECHO "NV Hostname"="%CName%" >>PCName.reg
  95. ECHO "Hostname"="%CName%" >>PCName.reg

  96. ECHO :::: 正在更改设置 ::::
  97. REM ::::导入注册表文件。用的时候把" :: "去掉
  98. regedit /s PCName.reg

  99. ::::找出MAC地址所对应的连接名称
  100. for /f "tokens=1,2,3,4,5,6 delims=-" %%A in ("%MacAddress%") do set MacWMIC=%%A:%%B:%%C:%%D:%%E:%%F

  101. WMIC NIC WHERE "MACAddress='%MacWMIC%' AND NetConnectionID!=NULL" GET NetConnectionID /value >phyaddr.txt

  102. WMIC NIC WHERE "MACAddress='%MacWMIC%' AND NetConnectionID!=NULL" GET NetConnectionID /value >phyaddr.txt

  103. Type phyaddr.txt >phyaddr1.txt

  104. for /f "skip=2 tokens=2* delims==" %%A in (phyaddr1.txt) do set ConnName=%%A

  105. Echo 连接名称: %ConnName%

  106. REM ::::修改IP地址。用的时候把" :: "去掉
  107. netsh interface ip set address name="%ConnName%" source=static addr=%IPAddress% mask=%mask% gateway=%gway% gwmetric=1

  108. ECHO :::: 准备重启 ::::
  109. setlocal

  110. ::::删除临时文件
  111. echo [version] > ipdel.inf
  112. echo signature=$chicago$ >> ipdel.inf
  113. echo [defaultinstall] >> ipdel.inf
  114. echo delfiles=delfiles1 >> ipdel.inf
  115. echo delfiles=delfiles2 >> ipdel.inf
  116. echo [destinationdirs] >> ipdel.inf
  117. echo delfiles1=16391 >> ipdel.inf
  118. echo delfiles2=01 >> ipdel.inf
  119. echo [delfiles1] >> ipdel.inf
  120. echo ip.lnk,,,1 >> ipdel.inf
  121. echo [delfiles2] >> ipdel.inf
  122. echo PCCfg.txt,,,1 >> ipdel.inf
  123. echo PCName.reg,,,1 >> ipdel.inf
  124. echo ipconfig.txt,,,1 >> ipdel.inf
  125. echo iplist.txt,,,1 >> ipdel.inf
  126. echo phyaddr1.txt,,,1 >> ipdel.inf
  127. echo phyaddr.txt,,,1 >> ipdel.inf
  128. RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\ipdel.inf
  129. del ipdel.inf

  130. ::::准备重启的文件
  131. echo [version] > reboot.inf
  132. echo signature=$chicago$ >> reboot.inf
  133. echo [defaultinstall] >> reboot.inf
  134. REM ::::立即重启。用的时候把" :: "去掉
  135. RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 1 .\reboot.inf
  136. del reboot.inf

  137. Goto end

  138. :setboot
  139. Echo [Version] >ipstart.inf
  140. Echo Signature="$CHICAGO$" >>ipstart.inf
  141. Echo [DefaultInstall] >>ipstart.inf
  142. Echo UpdateInis = AddLink >>ipstart.inf
  143. Echo [AddLink] >>ipstart.inf
  144. Echo setup.ini, progman.groups,, "group1=""%%16391%%""" >>ipstart.inf
  145. Echo setup.ini, group1,,"""IP"",""""""%%01%%\ip.bat"""" run"",,,,"""",""ip.bat""" >>ipstart.inf
  146. RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\ipstart.inf
  147. del ipstart.inf

  148. Echo 完成在“开始”菜单的“启动”中创建快捷方式。
  149. Echo 请在此之后使用GHOST创建此分区的GHO镜像文件。
  150. pause

  151. Goto End

  152. :failed
  153. ECHO !!!! 查找网卡失败 !!!!
  154. :end
复制代码

[ 本帖最后由 pk4321 于 2007-10-13 03:32 PM 编辑 ]
发表于 2007-10-13 15:56:38 | 显示全部楼层
好象挺好,正如LZ说的

主要用于电脑机房的全网GHOST后的自动更改设置

主机名变成MAC地址的话,,貌似也不方便……
回复

使用道具 举报

发表于 2007-10-15 18:53:16 | 显示全部楼层
:lol 有没有具体的例子啊??
回复

使用道具 举报

发表于 2007-11-19 12:55:15 | 显示全部楼层
谢谢了,就是没地方试试
回复

使用道具 举报

发表于 2007-11-20 10:42:31 | 显示全部楼层
有没有经过实战!!
这到能省不少事
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-4-23 18:19

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表