সাইলেন্ট ইনস্টল সুইচ: 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 বিস্তারিত লগ লেখে। প্যাকেজ সমর্থন করলে 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 নেয়, আর এখানে বড় হাতের 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 /NORESTARTWiX 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।