浅谈基于VHD方式在中小型企业内部署Windows8的一些思路与方法(4)-2
By lblneva
本篇接浅谈基于VHD方式在中小型企业内部署Windows 8的一些思路与方法(4)-1
地址:https://bbs.pcbeta.com/viewthread-1303359-1-1.html
2. xpchangiu.bat
- @echo off
- :uni
- cls
- echo 请选择要进行的工作
- echo #####################################################
- echo 安装Windows 8请按 1
- echo 卸载Windows 8请按 2
- echo #####################################################
- set unisos=
- set /p unisos=请输入对应数字选择您的操作:
- echo 您的输入的是:%unisos%,
- set /p chkunisos=如果输入错误请按N,确认输入没错请按y,:
- if "%chkunisos%"=="n" goto uni
- if "%chkunisos%"=="N" goto uni
- if "%chkunisos%"=="y" goto next2
- if "%chkunisos%"=="Y" goto next2
- echo 您输入有误,将返回重新输入
- pause
- goto uni
- :next2
- if "%unisos%"=="1" goto instll
- if "%unisos%"=="2" goto uninstall
- echo 您输入有误,将返回重新输入
- pause
- goto uni
- :instll
- echo open 192.168.1.2> %temp%\XPinstll.txt
- echo win8>> %temp%\XPinstll.txt
- echo 123456>> %temp%\XPinstll.txt
- echo lcd %temp%>> %temp%\XPinstll.txt
- echo get XPinstll.bat>> %temp%\XPinstll.txt
- echo bye>> %temp%\XPinstll.txt
- echo 下载工具中。
- ftp -s:%temp%\XPinstll.txt 1>nul
- del /q %temp%\XPinstll.txt
- call %temp%\XPinstll.bat
- del /q %temp%\XPinstll.bat
- exit
- :uninstall
- echo open 192.168.1.2> %temp%\XPuninstall.txt
- echo win8>> %temp%\XPuninstall.txt
- echo 123456>> %temp%\XPuninstall.txt
- echo lcd %temp%>> %temp%\XPuninstall.txt
- echo get XPuninstall.bat>> %temp%\XPuninstall.txt
- echo bye>> %temp%\XPuninstall.txt
- echo 下载工具中。
- ftp -s:%temp%\XPuninstall.txt 1>nul
- del /q %temp%\XPuninstall.txt
- call %temp%\XPuninstall.bat
- del /q %temp%\XPuninstall.bat
- exit
复制代码
3. XPinstll.bat
- @echo off
- set _pf=_pf
- dir /a a:\ntldr 1>nul 2>nul && set _pf=a
- dir /a b:\ntldr 1>nul 2>nul && set _pf=b
- dir /a c:\ntldr 1>nul 2>nul && set _pf=c
- dir /a d:\ntldr 1>nul 2>nul && set _pf=d
- dir /a e:\ntldr 1>nul 2>nul && set _pf=e
- dir /a f:\ntldr 1>nul 2>nul && set _pf=f
- dir /a g:\ntldr 1>nul 2>nul && set _pf=g
- dir /a h:\ntldr 1>nul 2>nul && set _pf=h
- dir /a i:\ntldr 1>nul 2>nul && set _pf=i
- dir /a j:\ntldr 1>nul 2>nul && set _pf=i
- dir /a k:\ntldr 1>nul 2>nul && set _pf=i
- dir /a l:\ntldr 1>nul 2>nul && set _pf=i
- dir /a m:\ntldr 1>nul 2>nul && set _pf=i
- dir /a n:\ntldr 1>nul 2>nul && set _pf=i
- If %_pf%==_pf goto assign
- If not %_pf%==_pf goto updatent60
- :assign
- echo 盘符获取失败,请联系管理员
- pause
- goto exit
- :updatent60
- cls
- echo 请打开计算机,确认要下载Win8的分区可用空间大于16G。
- set vhdstore=
- set /p vhdstore=请输入要下载到那个盘(如C盘请输入C。):
- echo 您输入的字符串是:%vhdstore%,
- set /p chkvhdstore=如果输入错误请按N,确认输入没错请按y,:
- if "%chkvhdstore%"=="n" goto ftp
- if "%chkvhdstore%"=="N" goto ftp
- mkdir "%vhdstore%:\Windows 8 VHD"
- goto ftp1
- :ftp1
- echo open 192.168.1.2> %temp%\ftptemp1.txt
- echo win8>> %temp%\ftptemp1.txt
- echo 123456>> %temp%\ftptemp1.txt
- echo lcd %temp%>> %temp%\ftptemp1.txt
- echo get 7za.exe>> %temp%\ftptemp1.txt
- echo get bcd.7z>> %temp%\ftptemp1.txt
- echo bye>> %temp%\ftptemp1.txt
- echo 下载工具中。
- ftp -s:%temp%\ftptemp1.txt 1>nul
- echo 下载完毕。开始准备释放文件到启动盘
- del %temp%\ftptemp1.txt
- %temp%\7za.exe x %temp%\bcd.7z -y -o%_pf%:\ 1>nul 2>nul
- del /q %temp%\7za.exe 1>nul 2>nul
- del /q %temp%\bcd.7z 1>nul 2>nul
- echo 释放完成
- goto bcd
- :bcd
- %_pf%:\vhdtoolsx86\bootsect.exe /nt60 all /mbr
- FOR /F "tokens=3 delims= " %%i in ('%_pf%:\vhdtoolsx86\bcdedit.exe /create /d "Windows 8" /application osloader') do set _win8id=%%i
- %_pf%:\vhdtoolsx86\bcdedit.exe /set %_win8id% device vhd="[%vhdstore%:]\Windows 8 VHD\win8ent.vhd"
- %_pf%:\vhdtoolsx86\bcdedit.exe /set %_win8id% osdevice vhd="[%vhdstore%:]\Windows 8 VHD\win8ent.vhd"
- %_pf%:\vhdtoolsx86\bcdedit.exe /set %_win8id% path \Windows\system32\winload.exe
- %_pf%:\vhdtoolsx86\bcdedit.exe /set %_win8id% systemroot \windows
- %_pf%:\vhdtoolsx86\bcdedit.exe /set %_win8id% locale zh-cn
- %_pf%:\vhdtoolsx86\bcdedit.exe /displayorder %_win8id% /addlast
- %_pf%:\vhdtoolsx86\bcdedit.exe /create {ntldr} /d "Windows XP pro"
- %_pf%:\vhdtoolsx86\bcdedit.exe /set {ntldr} device partition=%_pf%:
- %_pf%:\vhdtoolsx86\bcdedit.exe /set {ntldr} path \ntldr
- %_pf%:\vhdtoolsx86\bcdedit.exe /displayorder {ntldr} /addlast
- %_pf%:\vhdtoolsx86\bcdedit.exe /set {bootmgr} default %_win8id%
- %_pf%:\vhdtoolsx86\bcdedit.exe /timeout 30
- rd /s /q %_pf%:\vhdtoolsx86
- goto ftpvhd
- :ftpvhd
- echo open 192.168.1.2> %temp%\ftpvhd.txt
- echo win8>> %temp%\ftpvhd.txt
- echo 123456>> %temp%\ftpvhd.txt
- echo lcd "%vhdstore%:\Windows 8 VHD">> %temp%\ftpvhd.txt
- echo get win8ent.vhd>> %temp%\ftpvhd.txt
- echo bye>> %temp%\ftpvhd.txt
- echo 下载Win8时间较长,大概需要30分的时间。
- ftp -s:%temp%\ftpvhd.txt 1>nul
- del %temp%\ftpvhd.txt
- echo 下载完毕。现在可以重启进入Windows 8
- pause
- exit
复制代码
4. XPuninstall.bat
- @echo off
- set _vhdfile=vhdfile
- dir /a "a:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=a
- dir /a "b:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=b
- dir /a "c:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=c
- dir /a "d:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=d
- dir /a "e:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=e
- dir /a "f:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=f
- dir /a "g:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=g
- dir /a "h:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=h
- dir /a "i:\Windows 8 VHD\win8ent.vhd" 1>nul 2>nul && set _vhdfile=i
- If %_vhdfile%==vhdfile goto quit
- If not %_vhdfile%==vhdfile goto next3
- exit
- :next3
- echo open 192.168.1.2> %temp%\delvhdwin8.txt
- echo win8>> %temp%\delvhdwin8.txt
- echo 123456>> %temp%\delvhdwin8.txt
- echo lcd %temp%>> %temp%\delvhdwin8.txt
- echo get icacls.exe>> %temp%\delvhdwin8.txt
- echo get takeown.exe>> %temp%\delvhdwin8.txt
- echo get bootsect.exe>> %temp%\delvhdwin8.txt
- echo bye>> %temp%\delvhdwin8.txt
- echo 下载工具中。
- ftp -s:%temp%\delvhdwin8.txt 1>nul
- del /q %temp%\delvhdwin8.txt
- echo 工具下载完毕。开始删除Windows 8作业
- %temp%\bootsect.exe /nt52 all /mbr
- dir /a a:\bootmgr 1>nul 2>nul && set _bootpf=a
- dir /a b:\bootmgr 1>nul 2>nul && set _bootpf=b
- dir /a c:\bootmgr 1>nul 2>nul && set _bootpf=c
- dir /a d:\bootmgr 1>nul 2>nul && set _bootpf=d
- dir /a e:\bootmgr 1>nul 2>nul && set _bootpf=e
- dir /a f:\bootmgr 1>nul 2>nul && set _bootpf=f
- dir /a g:\bootmgr 1>nul 2>nul && set _bootpf=g
- dir /a h:\bootmgr 1>nul 2>nul && set _bootpf=h
- dir /a i:\bootmgr 1>nul 2>nul && set _bootpf=i
- %temp%\takeown.exe /F %_bootpf%:\bootmgr /A
- %temp%\takeown.exe /F %_bootpf%:\boot /R /A
- %temp%\takeown.exe /F %_bootpf%:\BOOTNXT /A
- %temp%\takeown.exe /F %_bootpf%:\BOOTSECT.BAK /A
- %temp%\icacls.exe %_bootpf%:\bootmgr /grant Administrators:F
- %temp%\icacls.exe %_bootpf%:\boot /grant Administrators:F /T
- %temp%\icacls.exe %_bootpf%:\BOOTNXT /grant Administrators:F
- %temp%\icacls.exe %_bootpf%:\BOOTSECT.BAK /grant Administrators:F
- del %temp%\icacls.exe /a /f /q
- del %temp%\takeown.exe /a /f /q
- del %temp%\bootsect.exe /a /f /q
- del %_bootpf%:\bootmgr /a /f /q
- del %_bootpf%:\BOOTNXT /a /f /q
- del %_bootpf%:\BOOTSECT.BAK /a /f /q
- rd %_bootpf%:\boot /s /q
- rd "%_vhdfile%:\Windows 8 VHD" /s /q
- cls
- echo Windows 8卸载完成
- pause
- exit
- :quit
- echo 您未通过本工具安装Windows 8.故无法卸载Windows 8
- pause
- exit
复制代码
7.4.2 批处理的演示
演示效果:
1. 可以看到,笔者的虚拟机除Windows XP。并无其他系统
2. 虚拟机的网络配置
3. 运行index.bat。按照设置出现傻瓜化提示。由于只是演示,故无太多细心考虑
4. 傻瓜化选择继续中
5. 输入存放VHD文件的分区盘符
6. 至此,所有输入完毕。批处理进入自动化处理中
7. 开始自动连接FTP服务器下载VHD文件
8. 可以看到要下载的VHD文件有15G。7.1M/S下载速度。估计要下载30到50分。
笔者这次偷懒用了写思路1、2、3里的以创建好的VHD文件,固定大小,未作应答封装等。实际使用过程中可以修改要部署的系统,创建自应答、集成公司内机器的驱动及软件后重新封装。VHD的类型可以选择为扩展+差分。来帮助减少工作量。
由于笔者疏忽,下载完毕后续操作忘掉截图。幸好以上演示过程已录像。还有,笔者今天上传至服务器批处理有2处小错误:
1. 安装批处理删除临时文件名多.txt 2. 卸载批处理漏掉删除vhd文件命令
本篇提供的批处理以修复以上问题。
安装演示视频共2段。中间跳过了下载时间
第一段:http://v.youku.com/v_show/id_XNTMxMTg4OTAw.html
第二段:http://v.youku.com/v_show/id_XNTMxMjI4ODky.html(忘掉写标题了)
卸载批处理演示视频共一段:
http://v.youku.com/v_show/id_XNTMxMjMzMzgw.html
至此,笔者对自己一些主要针对IT部门非正规化管理、公司内(非)IT专业人士、傻瓜化、自己DIY部署基于VHD文件启动的windows8的想法做了一些探讨。
接下来,笔者将会对原生系统是NT6.0启动的Windows 7与Windows XP + Windows 7双系统,使用批处理员工DIY部署基于VHD文件启动的Windows 8进行演示。希望阅读本篇文章并感觉有所启发的读者期待笔者的下一遍文章:浅谈基于VHD方式在中小型企业内部署Windows 8的一些思路与方法(5)
看了下word的字数统计,本篇很可能会超过远景的单贴限制。如果超过去后,本文将会以4-1,4-2的形式多帖发布。由于审核问题,显示时间可能会有延后。请读者见谅。
Lblneva 2013.03.23 |