浅谈基于VHD方式在中小型企业内部署Windows8的一些思路与方法(4)-2
浅谈基于VHD方式在中小型企业内部署Windows8的一些思路与方法(4)-2By 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. 安装批处理删除临时文件名多.txt2. 卸载批处理漏掉删除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的形式多帖发布。由于审核问题,显示时间可能会有延后。请读者见谅。
Lblneva2013.03.23 写得太好了,我挺你 写得太好了,我挺你
页:
[1]