欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Ghost安装Win7/XP后自动恢复IP的批处理代码(ip备份恢复)

程序员文章站 2022-06-17 13:27:45
今天维护人员找的我说,最近要推win7了,暂时桌面云没推广,还是使用手动安装win7的方式。所以,需要我帮忙写一个脚本,大概功能就是在ghost win7之前先导出xp的i...

今天维护人员找的我说,最近要推win7了,暂时桌面云没推广,还是使用手动安装win7的方式。所以,需要我帮忙写一个脚本,大概功能就是在ghost win7之前先导出xp的ip信息,在ghost完成之后,自动读取这个ip信息用于恢复ip设置。
ghost安装win7/xp后自动恢复ip的批处理

之前其实写过一个xp的,这次是win7的,其实大同小异了,花了近半小时测试成功了,现在来记录一下。
懒得去折腾兼容方法,就写了2个导出ip的脚本和一个ip恢复脚本,用于ghost远程安装win7后自动恢复ip设置的。(繁体环境)


1、导出winxp系统ip信息:

@echo off&setlocal enabledelayedexpansion 
title windowsxp ip信息导出工具(配合恢复脚本所用) 
echo ip信息导出中... 
for /f "tokens=1,2 delims=:" %%i in ('ipconfig') do ( 
 echo %%i | find /i "ip address">nul && echo ip:%%j>d:\ip.txt 
 echo %%i | find /i "subnet mask">nul && echo mk:%%j>>d:\ip.txt 
 if "!gw!" equ "1" call :end 
 echo %%i | find /i "default gateway">nul && echo gw:%%j>>d:\ip.txt && set gw=1 
) 
 
:end 
echo= 
echo 导出完毕.任意键检查... 
pause>nul 
start "" d:\ip.txt 
exit

2、导出win7系统ip信息

@echo off&setlocal enabledelayedexpansion 
title windows 7 ip信息导出工具(配合ip恢复脚本所用) 
echo ip信息导出中... 
for /f "tokens=1,2 delims=:" %%i in ('ipconfig') do ( 
 echo %%i | find /i "ipv4 位址">nul && echo ip:%%j>d:\ip.txt 
 echo %%i | find /i "子网路遮罩">nul && echo mk:%%j>>d:\ip.txt 
 if "!gw!" equ "1" call :end 
 echo %%i | find /i "预设闸道">nul && echo gw:%%j>>d:\ip.txt && set gw=1 
) 
 
:end 
echo= 
echo 导出完毕.任意键检查... 
pause>nul 
start "" d:\ip.txt 
exit

ps:测试过程中,发现win7 使用ipconfig命令,会有个ipv6的网关,导致出错,只好用了一个 if 跳出循环。
3、最后输出到d:\ip.txt的格式如下(太偷懒了,就三行,手动写入也很快!):

复制代码 代码如下:

ip: 10.197.198.173
mk: 255.255.255.254
gw: 10.197.198.1

最后,通过下面这个脚本读取d:\ip.txt内容并恢复ip:

@echo off&setlocal enabledelayedexpansion 
title ghost系统后的ip恢复工具 
rem 判断文件是否存在 
if not exist d:\ip.txt goto error 
 
rem 从ip.txt读取信息,并设置变量 
for /f "tokens=1,2 delims=: " %%a in (d:\ip.txt) do ( 
 if /i "%%a"=="ip" set addr=%%b 
 if /i "%%a"=="mk" set mask=%%b 
 if /i "%%a"=="gw" set gateway=%%b 
) 
  
rem 获取第一块网卡的名称,并设置ip,多块网卡将至设置第一块 
for /f tokens^=1^,2^ delims^=^" %%j in ('netsh interface ip show config') do (  
    
    if "%%j"=="介面 " ( 
     netsh interface ip set address name="%%k" source=static addr=!addr! mask=!mask! gateway=!gateway!  
     call :end      
       
      ) 
    if "%%j"=="接口 " ( 
     netsh interface ip set address name="%%k" source=static addr=!addr! mask=!mask! gateway=!gateway!  
     call :end      
   )   
  )  
 
:end 
echo 设置完毕,3s后自动退出! 
ping -n 3 127.1 >nul 
exit 
 
:error 
cls 
echo 错误:d盘根目录未发现ip.txt文件!请手动设置ip,任意键退出... 
pause>nul 
exit

这个脚本简、繁winxp/7等系统都可以兼容设定ip,其实是修改自我以前写的windows下获取网络连线实际名称,加强ip类设置脚本的兼容性中的脚本

4、脚本用法:

1、封装ghost系统镜像时,将设置ip的脚本加入启动项
2、ghost安装系统之前先通过【导出脚本】或【手动的方法】在d盘建立ip.txt,写入如上三条信息
3、通过onekey远程恢复ghost系统镜像,等恢复完成之后,ip脚本自动恢复d盘设定好的ip,这时就可以远程连接电脑进行维护了,整个过程均不需要现场操作。