最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲

[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。

[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。

[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。

2013年5月24日 星期五

Winpe 3.0 製作

何謂Winpe?可至微軟官網維基百科查詢,會有詳細的介紹,Winpe是一個精簡的Windows系統,Winpe有的功能,完整版的Windows OS 一定有,但Windows OS有的功能,Winpe不一定會有,就算有也是閹割版。
Winpe的版本演進
• Windows PE 1.0(Windows XP Professional):能從 PXE 及光碟開機。
• Windows PE 1.1(Windows XP Professional SP1):支援分散式檔桉系統(DFS),並且完整具備從硬碟開機的能力。
• Windows PE 1.2(Windows Server 2003 標準版或企業版):Windows Server 2003 或 Windows XP Professional SP1 皆可製作 Windows PE 1.2。
• Windows PE 2004/1.5(Windows XP Professional SP2):從這個版本開始,Windows PE 也另以年份表示版本,而新的功能包括支援 WMI 和 Windows 防火牆;前者能加入額外的驅動程式類型,能在開機之後重新掃瞄隨插即用的硬體。
• Windows PE 2005/1.6(Windows Server 2003 SP1):這個版本開始支援 RAMDisk 及 USB 隨身碟開機。要注意的是,雖然 Windows XP Professional SP2 和 Windows Server 2003 SP1 都能製作出 Windows PE 1.6,但只有 Windows Server 2003 SP1 才能製作出支援 RAMDisk 及 USB 隨身碟開機的 Windows PE。
• Windows PE 2.0(Windows Vista)
• Windows PE 3.0(Windows 7)
• Windows PE 4.0(Windows 8)

以上整理成簡單的表格介紹:
Winpe版本
對應Windows OS
Winpe 1.X
Windows 2003XP
Winpe2.X
Windows Vista
Winpe3.0
Windows 7
Winpe4.0
Windows 8

這裡先簡單介紹Winpe 3.0的做法,後續再整理新版Winpe 4.0。
Winpe 3.0製作套件有AIK與OPK兩種,一般使用者僅能取得AIK套件,OPK則是提供OEM與ODM廠商使用,功能上會有許多不一樣的支援,這裡我們就以AIK作說明。
先到官網下載製作winpe3.0的AIK套件  Windows® 7 的 Windows® 自動化安裝套件 ,再使用以下整理好的指令,將以下的batch指令另存成bat執行,即可得到一個Winpe 3.0。
@echo off
cls
echo Start make winpe 3.0
echo.

if "%1"=="" (
echo Usage : Make_Winpe Architecture
echo      Architecture : x86 or amd64 or ia64
goto Exit
)

echo ====================================
echo 設定環境變數
echo ====================================
set Arch=%1
set Winpe_Type=Windows OPK
set Winpe_Fodler_Path=c:\winpe_%Arch%
set Path=%Path%;%ProgramFiles%\%Winpe_Type%\Tools\PETools;%ProgramFiles%\%Winpe_Type%\Tools\%PROCESSOR_ARCHITECTURE%
set Currentfolder=%CD%
set Driver_Path=c:\x86
Set USB_Disk_Path=F:
echo.


if not exist "%ProgramFiles%\%Winpe_Type%\Tools\PETools\copype.cmd" echo No install %Winpe_Type%
if not exist "%ProgramFiles%\%Winpe_Type%\Tools\PETools\copype.cmd" goto Exit
echo.


echo ====================================
echo 建立存放winpe3.0檔案夾
echo ====================================
if exist %Winpe_Fodler_Path% rd /s /q %Winpe_Fodler_Path%
call copype %Arch% %Winpe_Fodler_Path%
echo.


echo ====================================
echo 將winpe開機Boot.wim複製到winpe3.0檔案夾
echo ====================================
copy %Winpe_Fodler_Path%\winpe.wim %Winpe_Fodler_Path%\ISO\sources\boot.wim
if not "%errorlevel%"=="0" echo Copy Boot.wim to %Winpe_Fodler_Path% fail.
if not "%errorlevel%"=="0" goto Exit
echo.


echo ====================================
echo 列出開機Boot.wim的內部資訊
echo ====================================
Dism /get-wiminfo /WimFile:%Winpe_Fodler_Path%\ISO\sources\boot.wim
if not "%errorlevel%"=="0" echo Get Boot.wim information fail.
if not "%errorlevel%"=="0" goto Exit
echo.


echo ====================================
echo 解開Boot.wim
echo ====================================
Dism /Mount-Wim /WimFile:%Winpe_Fodler_Path%\ISO\sources\boot.wim /index:1 /MountDir:%Winpe_Fodler_Path%\mount
if not "%errorlevel%"=="0" echo Mount Boot.wim fail.
if not "%errorlevel%"=="0" goto Exit
echo.


echo ====================================
echo 安裝常用套件
echo ====================================
Dism /image:%Winpe_Fodler_Path%\mount /Add-Package /PackagePath:"%ProgramFiles%\%Winpe_Type%\Tools\PETools\%Arch%\WinPE_FPs\winpe-wmi.cab"
if not "%errorlevel%"=="0" echo Install wmi package information fail.
if not "%errorlevel%"=="0" goto Unmount
Dism /image:%Winpe_Fodler_Path%\mount /Add-Package /PackagePath:"%ProgramFiles%\%Winpe_Type%\Tools\PETools\%Arch%\WinPE_FPs\winpe-scripting.cab"
if not "%errorlevel%"=="0" echo Install scripting package information fail.
if not "%errorlevel%"=="0" goto Unmount
echo.


REM echo ====================================
REM echo 加入Driver,有需要的可在此添加
REM echo ====================================
echo.


echo ====================================
echo 顯示RAM預設設定
echo ====================================
Dism /image:%Winpe_Fodler_Path%\mount /get-pesettings
if not "%errorlevel%"=="0" echo Get Ram information fail.
if not "%errorlevel%"=="0" goto Unmount
echo.


echo ====================================
echo 調整RAM大小至512MB以加速開機,可修改大小有32、64、128、256、512MB
echo ====================================
Dism /image:%Winpe_Fodler_Path%\mount /Set-ScratchSpace:512
if not "%errorlevel%"=="0" echo Setting Ram fail.
if not "%errorlevel%"=="0" goto Unmount
echo.


:Unmount
echo ====================================
echo 將修改內容進行壓縮存回 Boot.wim
echo ====================================
Dism /unmount-Wim /MountDir:%Winpe_Fodler_Path%\mount /Commit
echo.


echo ====================================
echo 複製設定開機程式 bootsect.exe 到winpe3.0資料夾中
echo ====================================
copy "%ProgramFiles%\%Winpe_Type%\Tools\PETools\%Arch%\bootsect.exe" %Winpe_Fodler_Path%
echo.


REM echo ====================================
REM echo 將隨身碟格式進行轉換
REM echo ====================================
REM call format %USB_Disk_Path% /q /y
REM CONVERT %USB_Disk_Path% /FS:NTFS 
REM echo.


echo ====================================
echo 複製winpe3.0所有必備的檔案至隨身碟
echo ====================================
xcopy %Winpe_Fodler_Path%\iso\*.* /s /e /f %USB_Disk_Path%
echo.


echo ====================================
echo 修改開機磁區
echo ====================================
%Winpe_Fodler_Path%\bootsect.exe /nt60 %USB_Disk_Path%
echo.

echo Finish......

:Exit
cd ..
cd "%Currentfolder%"
Winpe 3.0套件列表
封裝名稱
描述
WinPE-FONTSupport-
下列語言的其他字型支援:ja-JPko-KRzh-CNzh-HK 以及 zh-TW
WinPE-HTA
HTML 應用程式支援。能夠使用 Internet Explorer 指令碼引擎和 HTML 服務建立 GUI 應用程式。
Winpe-LegacySetup
Media 安裝程式功能封裝。Windows Media \Sources 資料夾中的所有安裝程式檔案。在服務安裝程式或 Windows Media \Sources 資料夾時,新增此封裝。必須與安裝程式功能封裝一起新增。若要將新的 Boot.wim 新增到媒體,除了安裝程式與媒體封裝外,還要新增任一子封裝。此為支援 Windows Server® 2008 R2 安裝所需的封裝。
WinPE-MDAC
Microsoft(R) Data Access 元件支援。能夠利用 Active Directory 物件 (ADO) 查詢 SQL Server。使用方法範例:從唯一的系統資訊建置動態自動安裝。
WinPE-PPPoE
能夠支援乙太網路上的點對點通訊協定 (PPPoE)。從 Windows PE 建立、連接、中斷連接及刪除 PPPoE 連線。
WinPE-Scripting
Windows Script Host (WSH) 支援。能夠使用 WSH 指令碼物件處理批次檔案。
WinPE-Setup
安裝程式功能封裝 (父系)。用戶端和伺服器共有的 \Sources 資料夾中的所有安裝程式檔案。
WinPE-Setup-Client
用戶端安裝程式功能封裝 (子系)。安裝程式的用戶端商標檔案。必須在安裝程式功能封裝之後新增。
WinPE-Setup-Server
伺服器安裝程式功能封裝 (子系)。安裝程式的伺服器商標檔案。必須在安裝程式功能封裝之後新增。
WinPE-SRT
Windows 修復環境功能封裝。提供一個修復平台,將系統診斷及修復自動化,並建立自訂修復解決方案。
WinPE-WMI
Windows Management Instrumentation (WMI) 支援。可進行最基本系統診斷的 WMI 提供者子集。
WinPE-WDS-Tools
Windows 部署服務工具功能封裝。包括可啟用多點傳送狀況的 API,搭配自訂的 Windows 部署服務用戶端與映像擷取公用程式。
WinPE-FONTSupport-
下列語言的其他字型支援:ja-JPko-KRzh-CNzh-HK 以及 zh-TW

Winpe 3.0畫面

欲將Winpe3.0封裝成CD/DVD可讀的ISO檔,則需使用以下指令
echo ====================================
echo 將Winpe 3.0 folder %Winpe_Fodler_Path%\ISO 做成可用CD開機的ISO檔
echo ====================================
xcopy "%ProgramFiles%\%Winpe_Type%\Tools\%Arch%\*.*" %Winpe_Fodler_Path%\tool\ /s /e
xcopy "%ProgramFiles%\%Winpe_Type%\Tools\PETools\%Arch%\boot\etfsboot.com" %Winpe_Fodler_Path%\tool\ /s /e
cd %Winpe_Fodler_Path%\tool
oscdimg -n -bc:etfsboot.com %Winpe_Fodler_Path%\ISO %Winpe_Fodler_Path%\winpe_x86.iso

沒有留言:

張貼留言