พารามิเตอร์ติดตั้งแบบเงียบ: MSI, NSIS, Inno Setup
ตัวติดตั้งบน Windows ส่วนใหญ่ติดตั้งได้โดยไม่แสดงหน้าต่างเลย แต่สวิตช์ที่ใช้ขึ้นกับเครื่องมือที่ใช้สร้างตัวติดตั้ง ขั้นแรกจึงต้องรู้ก่อนว่าเป็นชนิดไหน
ดูว่าตัวติดตั้งเป็นชนิดไหน
หน้าโปรแกรมทุกหน้าบน ExeAtlas ระบุชนิดตัวติดตั้งของแต่ละไฟล์ (MSI, NSIS, Inno Setup, WiX, MSIX …) หรือดูจาก “winget show” ก็ได้ นอกจากนี้ คุณสมบัติ → รายละเอียด ของไฟล์มักบอกชื่อเครื่องมือ และตัวติดตั้งหลายตัวจะแสดงรายการสวิตช์เมื่อรันด้วย /? จากพรอมต์คำสั่ง
winget show --id VideoLAN.VLC.\setup.exe /?MSI (Windows Installer)
แพ็กเกจ MSI ติดตั้งด้วย msiexec โดย /qn ไม่แสดงหน้าจอใด ๆ /norestart กันไม่ให้รีสตาร์ตเอง และ /l*v เขียนไฟล์ log แบบละเอียด ค่า property อย่าง INSTALLDIR ใส่ในบรรทัดเดียวกันได้ถ้าแพ็กเกจรองรับ การถอนการติดตั้งใช้ ProductCode ของแพ็กเกจ ซึ่งเป็น GUID ที่แสดงอยู่ในหน้าติดตั้งแบบเงียบของแต่ละโปรแกรม
msiexec /i app.msi /qn /norestart /l*v "%TEMP%\app-install.log"msiexec /x {PRODUCT-CODE-GUID} /qn /norestartNSIS
ตัวติดตั้งที่สร้างด้วย NSIS (Nullsoft) ใช้ /S ซึ่งต้องเป็นตัวพิมพ์ใหญ่ /D กำหนดโฟลเดอร์ติดตั้ง ต้องวางไว้เป็นสวิตช์สุดท้ายและไม่ใส่เครื่องหมายคำพูด แม้พาธจะมีช่องว่างก็ตาม ตัวถอนการติดตั้ง ซึ่งมักเป็น uninstall.exe ในโฟลเดอร์โปรแกรม ก็รับ /S เช่นกัน
setup.exe /Ssetup.exe /S /D=C:\Program Files\App"C:\Program Files\App\uninstall.exe" /SInno Setup
/VERYSILENT ซ่อนทุกหน้าต่าง /SUPPRESSMSGBOXES ตอบกล่องข้อความด้วยค่าเริ่มต้น /NORESTART กันการรีสตาร์ต และ /SP- ข้ามข้อความ “This will install…” ส่วน /DIR กำหนดโฟลเดอร์และ /LOG เขียนไฟล์ log ตัวถอนการติดตั้งของ Inno (unins000.exe) ใช้สวิตช์ /VERYSILENT ได้เหมือนกัน
setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-setup.exe /VERYSILENT /DIR="C:\Apps\App" /LOG="%TEMP%\app.log""C:\Program Files\App\unins000.exe" /VERYSILENT /NORESTARTWiX Burn bundle และ InstallShield
bundle ที่สร้างด้วย WiX toolset (Burn) รับ /quiet, /norestart และ /log ส่วนตัวติดตั้ง InstallShield ที่ห่อ MSI ไว้ข้างใน จะส่งสวิตช์ของ MSI ต่อผ่าน /v โดยเครื่องหมายคำพูดเป็นส่วนหนึ่งของไวยากรณ์
setup.exe /quiet /norestart /log "%TEMP%\bundle.log"setup.exe /s /v"/qn /norestart"MSIX และ APPX
แพ็กเกจ MSIX และ APPX ติดตั้งผ่าน PowerShell ได้โดยไม่มีหน้าต่าง สำหรับผู้ใช้ปัจจุบัน การลบใช้ Remove-AppxPackage กับชื่อแพ็กเกจเต็ม
Add-AppxPackage -Path .\App.msixGet-AppxPackage *AppName* | Remove-AppxPackageตรวจผลการติดตั้ง
ตัวติดตั้งแบบเงียบจะคืนค่า exit code โดย 0 คือสำเร็จ 3010 คือสำเร็จแต่ต้องรีสตาร์ต และ 1641 คือตัวติดตั้งสั่งรีสตาร์ตเครื่องแล้ว ใน PowerShell ให้เริ่มตัวติดตั้งด้วย -Wait แล้วอ่านค่านี้
$p = Start-Process .\setup.exe -ArgumentList "/S" -Wait -PassThru$p.ExitCodeคำถามที่พบบ่อย
ทำไมตัวติดตั้งยังแสดงหน้าต่างอยู่
สวิตช์ที่ใช้เป็นของตัวติดตั้งชนิดอื่น หรือโปรแกรมเรียกตัวติดตั้งแยกอีกตัว (เช่น runtime) ซึ่งมีสวิตช์ของตัวเอง ให้ตรวจชนิดก่อน ถ้าเป็นไฟล์ EXE ที่ห่อ MSI ไว้ ต้องส่งสวิตช์ของ MSI ผ่านเข้าไป
ติดตั้งแบบเงียบต้องใช้สิทธิ์ผู้ดูแลระบบไหม
ตัวติดตั้งที่เขียนลง Program Files หรือ HKLM ต้องใช้ ให้รันคำสั่งจากพรอมต์ที่เปิดด้วยสิทธิ์ผู้ดูแลระบบ หรือกระจายผ่านเครื่องมือที่รันในฐานะ SYSTEM เช่น Intune หรือ Configuration Manager