פרמטרים להתקנה שקטה: MSI, NSIS, Inno Setup
רוב קובצי ההתקנה של Windows יכולים לרוץ בלי שום חלון. הפרמטר תלוי בכלי שבו נבנה קובץ ההתקנה, ולכן הצעד הראשון הוא לברר באיזה כלי מדובר.
זיהוי סוג קובץ ההתקנה
בכל דף תוכנה ב־ExeAtlas מצוין סוג ההתקנה של כל קובץ (MSI, NSIS, Inno Setup, WiX, MSIX …). אחרת, “winget show” מציג אותו, בלשונית מאפיינים → פרטים של הקובץ מופיע לעתים קרובות שם הכלי, וקובצי התקנה רבים מציגים את הפרמטרים שלהם כשמריצים אותם עם /? משורת הפקודה.
winget show --id VideoLAN.VLC.\setup.exe /?MSI (Windows Installer)
msiexec מתקין חבילות MSI. /qn לא מציג ממשק כלל, /norestart מונע הפעלה מחדש אוטומטית, ו־/l*v כותב יומן מפורט. מאפיינים כמו 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 כותב יומן. מסירי ההתקנה של 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 /NORESTARTחבילות WiX Burn ו־InstallShield
חבילות שנבנו בערכת הכלים WiX (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בדיקת התוצאה
התקנה שקטה מחזירה קוד יציאה: 0 פירושו הצלחה, 3010 פירושו הצלחה שדורשת הפעלה מחדש, ו־1641 פירושו שתוכנית ההתקנה הפעילה מחדש את המחשב. ב־PowerShell מפעילים את קובץ ההתקנה עם -Wait וקוראים את הקוד.
$p = Start-Process .\setup.exe -ArgumentList "/S" -Wait -PassThru$p.ExitCodeשאלות נפוצות
למה קובץ ההתקנה עדיין מציג חלון?
הפרמטר שייך לסוג התקנה אחר, או שהתוכנה מפעילה התקנה נפרדת (למשל של רכיב זמן ריצה) עם פרמטרים משלה. קודם יש לבדוק את הסוג; בקובצי EXE שעוטפים MSI צריך להעביר את הפרמטרים של MSI הלאה.
האם התקנה שקטה דורשת הרשאות מנהל?
קובצי התקנה שכותבים ל־Program Files או ל־HKLM דורשים. יש להריץ את הפקודה משורת פקודה עם הרשאות מנהל, או להפיץ אותה בכלי שרץ כ־SYSTEM, כמו Intune או Configuration Manager.