今天维护人员找的我说,最近要推 Win7 了,暂时桌面云没推广,还是使用手动安装 Win7 的方式。所以,需要我帮忙写一个脚本,大概功能就是在 Ghost Win7 之前先导出 XP 的 IP 信息,在 Ghost 完成之后,自动读取这个 IP 信息用于恢复 IP 设置。
之前其实写过一个 XP 的,这次是 Win7 的,其实大同小异了,花了近半小时测试成功了,现在来记录一下。
懒得去折腾兼容方法,就写了 2 个导出 IP 的脚本和一个 IP 恢复脚本,用于 Ghost远程安装Win7 后自动恢复 IP 设置的。(繁体环境)
1、导出 WinXP 系统 IP 信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
@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 信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
@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 的格式如下(太偷懒了,就三行,手动写入也很快!):
1
2
3
|
IP: 10.197.198.173
MK: 255.255.255.254
GW: 10.197.198.1
|
最后,通过下面这个脚本读取 d:\IP.txt 内容并恢复 IP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
@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,这时就可以远程连接电脑进行维护了,整个过程均不需要现场操作。