โปรแกรมติดตั้ง setup.exe ในไฟล์ติดตั้ง Windows 10 มีพารามิเตอร์บรรทัดคำสั่ง (Command-Line Parameters) จำนวนมาก ซึ่งผู้ดูแลระบบสามารถนำไปใช้เพื่อทำ In-place Upgrade แบบเงียบ (Silent) และไม่ต้องดูแล (Unattended) บนคอมพิวเตอร์ผู้ใช้ผ่าน SCCM, MDT หรือเครื่องมือปรับติดตั้งอื่นๆ บทความนี้จะแสดงวิธีใช้พารามิเตอร์ setup.exe สำหรับตรวจสอบความเข้ากันได้และอัปเกรดเป็น Windows 10 Build ล่าสุด
พารามิเตอร์บรรทัดคำสั่งของ Windows 10 Setup.exe
รูปแบบทั่วไปและพารามิเตอร์หลักของ Setup.exe มีดังนี้:
/1394Debug:<channel> [BaudRate:<baudrate>]
/AddBootMgrLast
/Auto {Clean | DataOnly | Upgrade}
BitLocker {AlwaysSuspend | TryKeepActive | ForceKeepActive}
/BusParams:<bus.device.function>
/CompactOS {Enable / Disable}
/Compat {IgnoreWarning / ScanOnly}
/CopyLogs<location>
/Debug:<port> [BaudRate:<baudrate>]
/DiagnosticPrompt {enable | disable}
/DynamicUpdate {enable | disable}
/EMSPort: {COM1 | COM2 | off} [/emsbaudrate:<baudrate>]
/InstallDrivers<location>
/InstallFrom<path>
/InstallLangPacks<location>
/m:<folder_name>
/MigNEO Disable
/MigrateDrivers {all | none}
/NetDebug:hostip=<w.x.y.z>,port=<n>,key=<q.r.s.t>[,nodhcp][,busparams=n.o.p]
/NoReboot
/PKey<product key>
/Priority Normal
/PostOOBE<location> [\setupcomplete.cmd]
/PostRollback<location> [\setuprollback.cmd] [/postrollbackcontext {system / user}]
/Quiet
/ReflectDrivers<location>
/ResizeRecoveryPartition {Enable / Disable}
/ShowOOBE {full / none}
/Telemetry {Enable / Disable}
/TempDrive <drive_letter>
/Unattend:<answer_file>
/Uninstall {enable / disable}
/USBDebug:<hostname>
/WDSDiscover
/WDSServer:<servername>
รายละเอียดครบถ้วนดูได้ที่เอกสาร Microsoft: Windows Setup Command-Line Options
สร้างไฟล์ ISO ติดตั้ง Windows 10 เวอร์ชันล่าสุด
ก่อนอัปเกรด ต้องมี ISO Image ที่มี Windows 10 Build ล่าสุด สร้างได้ด้วย Media Creation Tool:
- ดาวน์โหลด Media Creation Tool จาก Microsoft
- รัน
MediaCreationTool2004.exe(หรือเวอร์ชันใหม่กว่า) เลือก Create installation media (USB flash drive, DVD, or ISO file) - เลือก Language, Edition, Architecture
- เลือก ISO file ระบุชื่อไฟล์และตำแหน่งจัดเก็บ
- รอจนดาวน์โหลดและสร้าง ISO เสร็จสิ้น
แตกไฟล์ ISO ไปไว้ที่ File Server หรือ Shared Folder สำหรับการปรับติดตั้ง
ตรวจสอบความเข้ากันได้ก่อนอัปเกรด (Compatibility Check)
รันคำสั่งต่อไปนี้เพื่อตรวจสอบความเข้ากันได้โดยไม่ทำการอัปเกรดจริง:
start /wait setup.exe /Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly
คำอธิบายพารามิเตอร์:
- /Auto Upgrade – โหมดอัปเกรดอัตโนมัติ
- /Quiet – ซ่อนหน้าต่าง Wizard
- /NoReboot – ปิดการรีสตาร์ทอัตโนมัติ
- /DynamicUpdate Disable – ไม่ดาวน์โหลดอัปเดตล่าสุดจาก Windows Update
- /Compat ScanOnly – ตรวจสอบความเข้ากันได้อย่างเดียว
ตรวจสอบผลลัพธ์จากไฟล์ Log:
C:\$Windows.~BT\Sources\Panther\setupact.log– ดูความคืบหน้าC:\$Windows.~BT\Sources\Panther\setuperr.log– ดูรหัสข้อผิดพลาด
รหัสผลลัพธ์ (Result Code) จะอยู่ในบรรทัด CSetupHost::Execute(xxx): Result = xxxxxxxx แปลงจาก Decimal เป็น Hexadecimal (เช่น -1047526896 → 0xC1900210)
รหัสข้อผิดพลาดที่พบบ่อย:
| รหัส (Hex) | ความหมาย |
|---|---|
| 0xC1900210 | ไม่พบปัญหา (เข้ากันได้) |
| 0xC1900208 | พบปัญหาความเข้ากันได้ (แอป/ไดรเวอร์บล็อก) |
| 0xC1900204 / 0xC190010E | อัปเกรดอัตโนมัติไม่ได้ (Edition/Architecture ผิด) |
| 0xC1900200 | ไม่ผ่านข้อกำหนดฮาร์ดแวร์ขั้นต่ำ |
| 0xC190020E | พื้นที่ดิสก์ไม่เพียงพอ |
| 0xC1420127 | ปัญหา WIM Image |
ใช้เครื่องมือ SetupDiag.exe เพื่อวิเคราะห์รายละเอียดสาเหตุ (เช่น แอปบล็อก เช่น McAfee VirusScan Enterprise)
ทำให้การอัปเกรดเป็นอัตโนมัติจาก Command Prompt
หากไม่มีปัญหาความเข้ากันได้ ให้สร้างไฟล์ Batch run_win10_upgrade.bat ใน Shared Folder ที่แตก ISO ไว้:
start /wait .\W102004\Windows10x64-2004\setup.exe /auto upgrade /DynamicUpdate disable /showoobe None /Telemetry Disable
- /Auto:Upgrade – เก็บแอปและข้อมูลผู้ใช้ทั้งหมด
- /Auto:DataOnly – เก็บเฉพาะข้อมูลผู้ใช้ (ไม่เก็บแอป)
- /MigrateDrivers all – บังคับย้ายไดรเวอร์ทั้งหมด
ใช้ไฟล์ SetupConfig.ini (Windows 10 1607+)
สร้างไฟล์ SetupConfig.ini ในโฟลเดอร์เดียวกับ setup.exe:
[SetupConfig] NoReboot ShowOobe=None Telemetry=Disable DynamicUpdate=Disable
รันคำสั่ง:
Setup.exe /ConfigFile setupconfig.ini
วิธีนี้เหมาะสำหรับการปรับติดตั้งจำนวนมากผ่าน SCCM/MDT ลดความซับซ้อนของบรรทัดคำสั่ง