顯示具有 Windows 標籤的文章。 顯示所有文章
顯示具有 Windows 標籤的文章。 顯示所有文章

2026年7月13日 星期一

Coreutils for Windows

官方網址:
https://learn.microsoft.com/en-us/windows/core-utils/overview
https://github.com/microsoft/coreutils

Coreutils可以在原生Windows上跑 UNIX風格命令列工具,由 Microsoft自己維護。

安裝:

winget install Microsoft.Coreutils

能用的命令可以參考:
https://learn.microsoft.com/en-us/windows/core-utils/commands

2023年4月21日 星期五

[Windows] 開機執行的兩種方法

啟動資料夾

  1. 按 Windows + R,打開執行視窗
  2. 輸入 shell:startup,執行後就會開啟啟動資料夾
  3. 放入開機要執行的程式或 batch檔案


工作排程器

  1. 按 Windows + R,打開執行視窗
  2. 輸入 taskschd.msc,執行後就會開啟工作排程器
  3. 點擊建立基本工作,跳出視窗後輸入名稱及描述
  4. 選擇在電腦啟動時執行
  5. 選擇啟動程式
  6. 輸入要執行的程式路徑,也可以輸入程式的參數要切換的工作目錄,再點選完成
  7. 確認完資訊後再點選完成,Windows的排程工作就能建好了

2022年11月30日 星期三

使用 Windows Terminal透過 SSH 連線到遠端主機

在公司的工作機是使用 Windows筆電,有時候會需要連到遠端 Linux機器,記錄一些會使用
到的指令。

SSH

根據微軟官網,Windows 本身已經內建 SSH client應用程式。


ssh user@machine

透過 ssh連線到遠端的主機,之後會跳出提示輸入密碼。


exit

logout
Connection to machine closed.

退出 ssh連線回到 Windows Terminal。


SCP

SCP是使用 SSH的遠端加密傳輸檔案指令。


scp C:\a.txt user@machine:~/

將本地的 C:\a.txt傳送到遠端 machine的 user目錄中。

scp C:\a.txt user@machine:~/b.txt

將本地的 C:\a.txt傳送到遠端 machine的 user目錄中,並命名成 b.txt。


scp user@machine:~/b.txt C:\

將遠端 machine的 user目錄中 b.txt傳送到本地端的 C:\目錄中。

scp user@machine:~/b.txt C:\c.txt

將遠端 machine的 user目錄中 b.txt傳送到本地端的 C:\目錄中,並命名成 c.txt。


scp -r user@machine:~/test C:\

將遠端 machine的 user目錄中 test目錄遞迴複製傳送到本地端的 C:\ (C:\test)。

scp -r C:\test user@machine:~/

將本地端的 C:\test目錄遞迴複製到遠端的 user目錄中 (~/test)。

2021年9月10日 星期五

Windows Server 延長使用授權 - slmgr

參考網站
https://docs.microsoft.com/en-us/windows-server/get-started/activation-slmgr-vbs-options

Windows Server 評估版在過了使用期限後,還是可以透過 slmgr來延長。


透過 Win + R快捷鍵執行:

查看使用期限及剩餘可延長次數

slmgr.vbs /dlv

延長使用授權

slmgr.vbs /rearm

2021年5月5日 星期三

建置 Windows Debugger(WinDbg) 環境 via Serial Cable

本篇文章參考
Debugging Tools for Windows

其他WinDbg相關細節
建置 Windows Debugger(WinDbg) 環境 via USB 3.0 cable

Setup Target Computer

1. 使用 Device Manager確認 COM port number。

2. 使用系統管理員權限開啟command prompt,並輸入以下命令
bcdedit /debug on
bcdedit /dbgsettings serial debugport:n baudrate:115200
n為 COM port number。

3. 重新開機。

Setup and Use WinDbg

1. 開啟WinDbg
(C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe)

2. 點選"File" > "Kernel Debugging"

3. 標籤頁切換到"COM",並輸入 HOST端所連接的 COM port number。

3. 按下確定,開始執行WinDbg

2020年9月19日 星期六

DISM - Windows 映像檔佈署工具

DISM 是Windows下用以佈署映像檔的工具。

/Split-image

將 .wim檔分割為多個 WIM(.swm)檔案。以 /FileSize來指定 .swm檔的檔案大小上限。
/CheckIntegrity 用以偵測並追蹤 WIM檔案毀損狀況。

dism /Split-Image /ImageFile:"<WIM_PATH>" /SWMFile:"<SWM_PATH>"
/FileSize:<MB> [/CheckIntegrity]


分割 install.wim
在製作 Windows USB開機隨身碟時,會遇到 install.wim檔案大小大於 4GB的情況。
目前 UEFI系統只支援 FAT32格式,而 FAT32有單一檔案大小不能超過 4GB的限制,
所以如果要不透過其他工具直接製作 USB開機碟,可以將 install.wim分割成多個
檔案來避開限制,使用分割出的 .swm檔取代原本的 .wim檔。


2020年6月12日 星期五

[Batch] 移除數字的前置0


Example: 移除0120的前置0
@set var=0120

@for /f "tokens=* delims=0" %%a in ("%var%") do @set var=%%a
@if "%var%"=="" set var=0

@echo %var%

Output:
120

2019年7月4日 星期四

在Windows 使用gcc - Cygwin


官方網址

http://www.cygwin.com/

Cygwin 可以讓我們在Windows 上執行Liunx或Unix-like的軟體,包含gcc。

要搭建基本的gcc C/C++開發環境,除本身預設安裝的套件外,需額外安裝幾個套件
  Categories    Package     Description  
Develgcc-coreGNU Compiler Collection (C, OpenMP)
Develgcc-g++GNU Compiler Collection (C++)
DevelmakeThe GNU version of the 'make' utility
Develbinutils GNU assembler, linker and similar utility
Develgdb The GNU debugger


test.c

#include <stdio.h>
int main() {
  printf("Hello World!\n");
  return 0;
}


編譯test.c並輸出test.exe
$ gcc test.c -o test

執行test.exe
$ ./test.exe
Hello World!


在Cygwin上安裝新的套件


1. 執行原本安裝時所使用的安裝檔(如果遺失就直接重新下載)。


2. 選擇"Download Without Installing",只下載套件不安裝。並在「Select Local Package Directory」的頁面中選擇之前安裝套件所使用的資料夾。


3. 接著選擇需要的套件下載。

4. 下載完成後,再執行Cygwin安裝檔,選擇"Install from Local Directory"來從下載好的套件安裝。

5. 在「Select Root Install Directory」選擇先前Cygwin所安裝的路徑。並一樣在
「Select Local Package Directory」的頁面中選擇之前安裝套件所使用的資料夾,
之後找到所選擇的套件進行安裝即可。

2021/07/02 Note: 安裝新套件的步驟2可直接選擇"Install from Internet",相當於步驟3到5。

2018年8月7日 星期二

建置 Windows Debugger(WinDbg) 環境 via USB 3.0 cable

本篇文章參考
Debugging Tools for Windows

Preparation

Host Computer (with USB3.0 port)
  - windows-10-sdk
Target Computer (with USB3.0 Debug port)
USB 3.0 Debug Cable (A-A crossover, no VBus)

Setup Target Computer

1. 使用UsbView.exe來確認該port是否能Debug(Is Port Debug Capable: yes)。

2. 紀錄該port的xHCI Controller的Bus、Device和Function的number。

3. 使用系統管理員權限開啟command prompt,並輸入以下命令
bcdedit /debug on
bcdedit /dbgsettings usb targetname:TargetName
TargetName為自行命名。

4. 將step2 所記下的資訊帶入以下命令
bcdedit /set "{dbgsettings}" busparams b.d.f

5. 重新開機。

Setup Host Computer

1. 安裝Windows SDK

2. 安裝WinDbg的USB driver
(預設路徑:C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\usb)


使用WinDbg

1. 開啟WinDbg
(C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe)

2. 點選"File" > "Kernel Debugging"

3. 標籤頁切換到"USB",並輸入Setup Target Computer step 3的TargetName


3. 按下確定,開始執行WinDbg


設定Symbols

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symbol-path

.sympath
設定Debugger所要參考的symbol file的位置。

.sympath srv*c:\MyServerSymbols*https://msdl.microsoft.com/download/symbols 使用Microsoft Public Symbol Server https://msdl.microsoft.com/download/symbols 所提供的symbol並把local端的c:\MyServerSymbols 用來存放symbols。

或使用 "File" > "Symbol File Path ..." (Ctrl+S) 來設定。


2020/06/02 Note
最近嘗試用這樣的方式設symbol path會遇到ERROR_INTERNET_CANNOT_CONNECT無法 load symbol的情況。
所以參考how-to-specify-symbol-file-locations-from-the-command-line的方式,將
_NT_SYMBOL_PATH設成系統的環境變數,就能正常load到symbol。


Modules

lm
列出已載入的Modules

m PATTERN - 指定符合PATTERN的Module
ex: lm m a* 為列出所有a開頭的Modules

.reload
重新從Symbol Path載入Modules


2018年7月8日 星期日

使用Visual Studio Community 2017/2019 Build EDK2 on Windows

參考來源
https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems
https://github.com/tianocore/tianocore.github.io/wiki/UDK2018#how-to-build-UDK2018

Source

Visual Studio Community 2017
https://visualstudio.microsoft.com

UDK2018
https://github.com/tianocore/edk2/releases/tag/vUDK2018

Basetools-Win32
https://github.com/tianocore/edk2-BaseTools-win32

Python2.7
https://www.python.org/

Cygwin
https://www.cygwin.com/

NASM
https://www.nasm.us/

iASL
https://acpica.org/downloads/binary-tools

Environment Variable

PYTHON_HOME - Python安裝路徑 (預設C:\Python27)
CYGWIN_HOME - Cygwin安裝路徑 (預設C:\cygwin64)
EDK_TOOLS_BIN - Basetools-Win32路徑
NASM_PREFIX - NASM路徑
IASL_PREFIX - iASL路徑

target.txt

ACTIVE_PLATFORM
指定要build的DSC file的路徑。Ex: Nt32Pkg/Nt32Pkg.dsc。
(build -p Nt32Pkg/Nt32Pkg.dsc)

TARGET
指定build target。Ex: DEBUG RELEASE。
(build -b DEBUG)

TARGET_ARCH
指定使用架構。Ex: IA32 X64。
(build -a X64)

TOOL_CHAIN_TAG
指定Tool Chain的Tagname。Ex: VS2017。
(build -t VS2017)

Setup Reference

Directory Structure

C:\
├ ─ ─ ─ Python27
└ ─ ─ ─ cygwin64
└ ─ ─ ─ Program Files (x86)
    └ ─ ─ ─ Microsoft Visual Studio
        └ ─ ─ ─ 2017
            └ ─ ─ ─ Community

(WORKSPACE)
├ ─ ─ ─ UDK2018
└ ─ ─ ─ edk2-BaseTools-win32
└ ─ ─ ─ iasl-win-20180629
└ ─ ─ ─ nasm-2.13.03
└ ─ ─ ─ (Build-UDK2018)

Build-UDK2018.bat

@echo off

set PYTHON_HOME=C:\Python27
set CYGWIN_HOME=C:\cygwin64

set EDK_TOOLS_BIN=%cd%\edk2-BaseTools-win32
set NASM_PREFIX=%cd%\nasm-2.13.03\
set IASL_PREFIX=%cd%\iasl-win-20180629\

cd .\UDK2018

call edksetup.bat
cmd

Run Nt32Pkg

1. Build the Nt32Pkg
build -p Nt32Pkg/Nt32Pkg.dsc -t VS2017 -a X64

2. Run the Nt32 emulation
build -t VS2017 -a X64 run


2019/04/08 Note:
在更新完EDK的source code之後,會出現build failed ...\CryptoPkg\Library\OpensslLib\OpensslLibCrypto.inf(31): error 000E: File/directory not found in workspace
  ...\CryptoPkg\Library\OpensslLib\openssl\e_os.h

參考檔案 CryptoPkg\Library\OpensslLib\OpenSSL-HOWTO.txt 需加入OpenSSL submodule

在已擁有local source且未加入submodule的情況下,加入OpenSSL submodule git submodule update --init --recursive

若還未擁有local source,可直接使用"--recursive" flag git clone --recursive https://github.com/tianocore/edk2

2020/08/09 Note:
要build最新 edk2 EmulatorPkg,basetool部分需要重新rebuild
且需使用VC2019,使用VC2017會build不過


2021/10/06 Note:
在另一台電腦重新架環境,並rebuild BaseTools的時候會遇到 assert.h
找不到的問題。後來才發現 %include%的 path有問題,原因是那台電腦中安裝的
WDK可能造成在設定 SDK path的時候出問題,後來解除安裝 WDK就能避開這個問題。


2018年6月28日 星期四

Windows Print Screen 按鍵功能


Print Screen為鍵盤上所提供相容於Windows系統的按鍵,通常縮寫為PrtSc。

PrtSc
將全螢幕的圖像存入隨機記憶體,使用Ctrl + V將圖像讀出。

Alt + PrtSc
將應用程式的圖像存入隨機記憶體,使用Ctrl + V將圖像讀出。


Win8/Win10

Win + PrtSc
將全螢幕的圖像存入PNG檔到圖片資料夾。

Win + Alt + PrtSc
將應用程式的圖像存入PNG檔到影片資料夾。

2018年6月20日 星期三

[Batch] 取得字元的ASCII Number

在寫Batch script的時候,有時候會需要用到某些字元的 ASCII Number 來做判斷(ex: 判斷 英文字母的排序),但是cmd.exe並沒有提供這樣的服務,這時候可以應用一個非官方文件 所記載的動態變數 %=ExitCodeAscii% 來達成目的。

%=ExitCodeAscii% 的值為最後一個額外的cmd.exe所回傳的ExitCode的ASCII character。

Example: 找出 "A" 的ASCII Number
@echo off
setlocal EnableDelayedExpansion

set char=A
for /l %%a in (32,1,126) do (
   cmd /c exit %%a
   if "!=exitcodeAscii!" EQU "%char%" echo %%a
)

Output:
65

[Batch] 延遲變數展開 (EnableDelayedExpansion)

在剛開始寫Batch的迴圈(for)的時候,都會遇到一個問題,就是在迴圈中,想要去改變(set) 某個變數的值,可是卻沒有作用。

Example:

set var=0
for %%a in (1 1 1 1 1) do (
   set /a var+=%%a
   echo %var%
)
echo %var%

Output:
0
0
0
0
0
5

上面範例原意是想讓 var在每次的迴圈中都 +1,最後的值會是 5。可是在迴圈中每次 echo出的值都是一開始的 var值 0。

原因是 var在 batch file被解析的時候就會提前展開,所以在迴圈中會 echo出一開始被展開的值。要得到預想的結果就要使用 setlocal EnableDelayedExpansion來延遲變數展開,使其在執行的階段才會被展開。

Example:

setlocal EnableDelayedExpansion
set var=0
for %%a in (1 1 1 1 1) do (
   set /a var+=%%a
   echo !var!
)
echo %var%

Output:
1
2
3
4
5
5

注意在取值時,要延遲展開的變數需使用 !var!才會有效果。

與 setlocal EnableDelayedExpansion對應的是 setlocal DisableDelayedExpansion,其作用為取消延遲變數展開。

2018年6月8日 星期五

bcdedit - Windows 管理BCD存放區的工具

本篇文章參考網頁:
bcdedit-command-line-options

在Windows內建管理BCD(Boot Configuration Data) 存放區(store)的工具,可以用來修改開機順序,或其他與開機相關操作。

bcdedit /COMMAND [ARGUMENT1] [ARGUMENT2]

HELP


bcdedit /? [COMMAND] 輸出bcdedit 命令列表。若有COMMAND參數,則輸出COMMAND的詳細資訊。


操作存放區


export bcdedit /export <FILENAME> 匯出系統存放區的內容至檔案,這個檔案可以用import命令來還原系統存放區,此命令只對系統存放區有效。

import bcdedit /import <FILENAME> [/clean] 能將export的檔案匯入系統存放區,此命令只對系統存放區有效。

store bcdedit /store <FILENAME> 指定要操作的存放區。如果沒有指定,bcdedit將會以系統存放區(system store)進行操作。


修改entry的項目


set bcdedit /set [{<id>}] <datatype> <value> [/addfirst|/addlast|/remove] 設定entry項目的值。


輸出控制


enum bcdedit /enum [<type>|<id>] 列出存放區中的entries


控制開機管理程式的命令


displayorder bcdedit /displayorder <id> [...] [/addfirst|/addlast|/remove] 調整開機管理程式顯示的選項順序


Debugging


dbgsetting bcdedit /dbgsetting [ <debugtype> [TARGETNAME:<targetname>] ] 設定系統的全域Debugger,不加參數則顯示目前全域Debugger設定。

<debugtype> - 指定Debugger類型。可為SERIAL、USB和NET等。
<targetname> - 用於USB偵錯,指定用於偵錯的USB目標名稱。

debug bcdedit /debug [<id>] { ON | OFF } 開啟或關閉開機項目的Kernel Debugger。若id沒有指定,則開啟或關閉目前的開機選項的Kernel Debugger。


  • 使用bcdedit在Windows下調整boot order(使用USB Device開機)


1. 列出系統存放區所有firmware applications
bcdedit /enum firmware
2. 找到要使用於開機的USB Device的firmware application,並記錄其id(identifier)。

3. 將fwbootmgr entry的USB device選項用displayorder設到最前面。
bcdedit /set {fwbootmgr} displayorder <id> /addfirst
4. 重新開機,這時系統應該會boot進USB device的image中。

2018年6月7日 星期四

diskpart - Windows 管理硬碟與分割區的工具

diskpart是Windows下用以管理及操作磁碟與分割的CLI工具。

assign

指派一個磁碟機代號或掛接點到所選擇磁碟區。


clean

清除磁碟上所有資訊,可以用以清除磁碟上的分割區。


create

建立一個磁碟區、磁碟分割或虛擬磁碟。

partition - 建立一個磁碟分割。
efi - 建立一個EFI系統磁碟分割。
extended - 建立一個延伸磁碟分割。
logical - 建立邏輯磁碟區。
msr - 建立一個Mircrosoft保留的磁碟分割。
primary - 建立主要磁碟分割。

volume - 建立一個磁碟區。
vdisk - 建立虛擬磁碟檔案。


exit

離開diskpart。


format

格式化磁碟區或磁碟分割。

OPTIONS
fs=<FS> - 指定檔案系統的類型。ex: fs=ntfs。
label=<"LABEL"> - 指定磁碟區標籤。ex: label=D。
quick - 執行快速格式化。


list

列出物件的清單。

disk - 列出磁碟。
partition - 列出所選磁碟上的分割。
volume - 列出磁碟區。
vdisk - 列出虛擬磁碟。


select

將襙作移至所選物件。

disk - 將操作移至所選磁碟。
partition - 將操作移至所選分割。
volume - 將操作移至所選磁碟區。
vdisk - 將操作移至所選虛擬磁碟。


shrink

縮小所選磁碟區。

OPTIONS
desired=<N> - 指定要縮減的磁碟區空間大小(MB)。ex: desired=100000。
querymax - 回傳所選磁碟區可縮減的空間最大值(磁碟區上的可用空間),但如果
  應用程式正在存取磁碟區,此值可能會改變。



diskpart批次檔


diskpart也能寫成批次檔形式,可以參考:
diskpart-scripts-and-examples

執行diskpart script
diskpart /s example.txt

Batch script 筆記

參考網頁
windows-commands
https://ss64.com/nt/
https://en.wikibooks.org/wiki/Windows_Batch_Scripting

  • 參數

Batch的參數使用 %n (%0、%1、%2、%3 ...) 來代表第n個參數,%0 代表batch檔本身。

%n 還可以使用下列擴充語法,詳細內容可以使用 call /? 來參考:
%~1 - 展開 %1 並移除包圍的引號(")
%~f1 - 展開 %1 為一個完整合格路徑名稱
%~d1 - 只展開 %1 為磁碟機代號
%~p1 - 只展開 %1 為路徑
%~n1 - 只展開 %1 為檔名
%~x1 - 只展開 %1 為副檔名
%~z1 - 顯示 %1 的檔案大小

常見應用

%~dp0
batch檔所在的目錄,常與%CD%作為比較,%CD%代表的是當前的工作目錄。


  • 動態變數

cmd.exe下可使用的動態變數,不會出現在set 命令的環境變數列表中,在每次展開時
都會重新計算一次。


%CD%
展開當前工作目錄的字串。

%RANDOM%
展開一個範圍0到32767間的整數。

%ERRORLEVEL%
展開目前ERRORLEVEL的值。

參考範例
在Batch 中取出字元的ASCII Number


  • 輸出命令重新定向

COMMAND > FILENAME
清除原有內容後再寫入

COMMAND >> FILENAME
在原有內容後寫入

COMMAND < FILENAME
將FILENAME的內容傳入COMMAND

COMMAND_A | COMMAND_B
將COMMAND_A的output傳入COMMAND_B

常見應用

COMMAND > nul
不印出輸出命令結果


  • cd

切換目錄

/d
同時切換磁碟機


  • del

刪除一或多個檔案

/q
Quiet Mode。不會再次詢問是否刪除檔案。


  • endlocal

復原setlocal前的環境變數


  • exit

結束cmd.exe或目前的batch script。

/b
結束目前的batch script而不是cmd.exe。

/b [exitCode]
將ERRORLEVEL variable設為exitCode所設的數字。


  • findstr

搜尋檔案中的字串

/c:string
所要逐字搜尋的字串。若要搜尋多個字串,可用空白字元分隔。

/r /c:string
將string視為regular expression來使用。


  • for 迴圈


使用for 迴圈iterate 項目
for %%PARAMETER in (ITEM1 ITEM2 ITEM3 ...) do COMMAND

一次讀出字串並將其分成獨立的項目(tokens)
for /f ["OPTIONS"] %%PARAMETER in ("Text string to process") do COMMAND

一次讀出command的輸出並將其分成獨立的項目(tokens)
for /f ["OPTIONS"] %%PARAMETER in ('COMMAND_TO_PROCESS') do COMMAND

使用一段範圍的數字iterate
for /l %%PARAMETER in (start,step,end) do COMMAND
start - 起始數字
step - 迴圈數字所要增加的值,可為負數
end - 結束數字


OPTIONS
Key   Description  
delims=xxx   設定分隔字元(預設為空白字元),xxx表示可設定多個字元。  
token=x,y  
token=z*  
token=m-n  
用來決定要取出的item,並且放到parameter中。 
若token=x,就取出第x項item。  
token=x,y,若parameter設為%a,便取出第x與y項item分別置於%a和%b自動變數中。 
token=z*,若parameter設為%a,取出第z項置於%a中,並將第z項後的所有item置於%b中。 
若token=m-n,便取出第m至第n項。 


  • if 判斷式


判斷檔案存在與否
if [not] exist FILENAME COMMAND if [not] exist FILENAME (COMMAND) else (COMMAND)
判斷文字字串是否相符 if [not] STRING1==STRING2 COMMAND
使用數值進行判斷 if [not] ITEM1 compare-op ITEM2 COMMAND if [not] ITEM1 compare-op ITEM2 (COMMAND) else (COMMAND)
/i
忽略大小寫。

compare-op:
EQU - Equal
NEQ - Not Equal
LSS - Less Than
LEQ - Less Than or Equal
GTR - Greater Than
GEQ - Greater Than or Equal


  • set

顯示、設定或移除cmd.exe的環境變數。若不加任何參數,就會顯示所有環境變數。

將變數設為文字字串
set VARIABLE=STRING
將變數設為數學運算後的值
set /a "VARIABLE=expression"

常見應用

set VARIABLE=
VARIABLE初始化

set /a VARIABLE=HEX_NUMBER or OCT_NUMBER
可將十六進位數字(ex: 0x2F) 或八進位數字(ex: 057) 轉換成十進位數字。


  • setlocal

將環境變數帶入到Batch 的local變數中,在Batch執行完或endlocal時結束。

設定或取消延遲變數展開
setlocal {EnableDelayedExpansion | DisableDelayedExpansion}
EnableDelayedExpansion - 延遲變數展開
DisableDelayedExpansion - 取消延遲變數展開

補充說明
延遲變數展開 (EnableDelayedExpansion)


2017年12月1日 星期五

Windows「執行」指令筆記

  • Windows執行指令快捷鍵 Win + R
  • 在C:\Windows的目錄下可加入應用程式的捷徑,便可以從「執行」啟動

常用程式
calc 小算盤
mspaint 小畫家
snippingtool 剪取工具
notepad 記事本
write WordPad
cmd 命令提示字元
powershell Windows PowerShell
explorer 檔案總管

系統目錄
shell:startup 系統啟動資料夾
shell:sendto 傳送到(send to)資料夾

系統資訊
msinfo32 系統資訊
msconfig 系統設定
regedit 登錄編輯程式
control 控制台
dcomcnfg 元件服務
winver 顯示windows版本

系統配置
tpm.msc TPM管理
devmgmt.msc 裝置管理員
diskmgmt.msc 磁碟管理
eventvwr.msc 事件檢視器
taskschd.msc 工作排程器

2017年4月8日 星期六

製作含有USB3.0 Driver的Windows 7開機隨身碟

由於Windows 7本身並沒有集成各家廠商的USB3.0 Driver,所以在有些主機板只有USB3.0 port的情況下,會遇到沒有辦法安裝Windows 7的情況。

所以本篇介紹使用Windows 7* USB 3.0 Creator UtilityDISM,來製作含有USB3.0 Driver的Windows 7開機隨身碟,這樣就能夠使用USB Drive來安裝並操作Windows 7。

這兩種工具都需事先準備好可開機的Windows 7 USB Drive。


Windows 7* USB 3.0 Creator Utility

若工作機是Windows7,下載Win7-USB3.0-Creator-V3-Win7Admin版本。而Windows8.1及Windows10就下載Win7-USB3.0-Creator-V3。

此Utility只適用於Intel USB3.0公板Driver,Driver已經包在裡面,所以不用再另外下載。

1. 開啟Windows7* USB3.0 Creator Utility目錄,在USB_Drivers的目錄下就是此Utility所提供的USB3.0 Driver,另外Utility及DISM的使用方法可以參考Win7-USB3.0-Creator-Readme-v3.pdf。

2. 執行Installer_Creator.exe。

3. 在USB Drive Path選擇Windows 7開機隨身碟根目錄,並執行Create Image

4. 操作完成後,USB 3.0 Driver就被掛載到USB Drive中了。


DISM Graphical User Interface (GUI) Tool
DISM在使用前除了可開機的Windows 7隨身碟外,還需要到主機板廠商的網站下載支援該主機板的USB3.0 Driver。如果沒有的話,就要到Intel或AMD的網站下載適合主機板的公板Driver。要注意Driver是否支援Windows 7

以Intel公版的USB3.0 Driver為例。在Intel的下載頁面https://downloadcenter.intel.com,搜尋Intel® USB 3.0 eXtensible Host Controller Driver就能找到。

1. 建立工作目錄來方便我們操作DISM。例如D:\WIM用來放wim檔案,D:\WIM\MOUNT作為DISM的掛載點。並從下載好的Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver中複製\Drivers\Win7\x64放在D:\WIM\USB3。

2. 從Windows7開機隨身碟的目錄\source複製我們要掛載driver的image檔,install.wim及boot.wim到D:\WIM。

3. 使用系統管理員權限執行DISM GUI.exe

4. 在Mount Control標籤頁,點擊Choose WIM,選擇剛放在D:\WIM下的install.wim。並依據USB Drive中的Windows 7版本選擇index號碼。
1 = Home Basic
2 = Home Premium
3 = Professional
4 = Ultimate

5. Choose Folder選擇D:\WIM\MOUNT作為Mount Location,並確認不要勾選Read Only

6. 執行Mount WIM,並等待一段時間完成。

7. 接著切換到Driver Management標籤頁,點擊Choose Driver,選擇放在D:\WIM\USB3的x64目錄。

8. 如果Driver是unsigned的話,勾選Force Unsigned,並確認有勾選Recurse。之後執行Add Drivers

9. 回到Mount Control標籤頁,點擊Dismount WIM。選擇YES確認變更,並等待一段時間完成。

10. 接著重複相似的步驟。在Mount Control標籤頁點擊Choose WIM,選擇D:\WIM下的boot.wimindex選擇2(Windows Setup。index 1為Windows PE)。Choose Folder選擇D:\WIM\MOUNT。一樣不勾選Read Only

11. 執行Mount WIM,並等待一段時間完成。

12. 切換到Driver Management標籤頁,點擊Choose Driver,選擇D:\WIM\USB3的x64目錄。

13.  如果Driver是unsigned的話,勾選Force Unsigned,並確認有勾選Recurse。之後執行Add Drivers

14. 回到Mount Control標籤頁,點擊Dismount WIM。選擇YES確認變更,並等待一段時間完成。

15. 最後再將修改過的install.wim及boot.wim複製回USB Drive的\source目錄下,取代原本的檔案,含有USB3.0 Driver的開機隨身碟就完成了。