የጸጥ ያለ ጭነት መቀየሪያዎች፦ MSI፣ NSIS፣ Inno Setup
አብዛኞቹ የWindows ጫኚዎች ያለ ምንም መስኮት ሊሠሩ ይችላሉ። መቀየሪያው ጫኚው በተሠራበት መሣሪያ ላይ ይወሰናል፤ ስለዚህ የመጀመሪያው ደረጃ የትኛው እንደሆነ ማወቅ ነው።
የጫኚውን አይነት ይወቁ
በExeAtlas ላይ ያለ እያንዳንዱ የፕሮግራም ገጽ የእያንዳንዱን ፋይል የጫኚ አይነት (MSI፣ NSIS፣ Inno Setup፣ WiX፣ MSIX …) ይጠቅሳል። ያለበለዚያ “winget show” ያሳየዋል፤ የፋይሉ ባሕሪያት → ዝርዝሮች (Properties → Details) ብዙ ጊዜ መሣሪያውን ይጠቅሳል፤ ብዙ ጫኚዎችም ከትዕዛዝ መጠየቂያ በ/? ሲሠሩ መቀየሪያዎቻቸውን ያሳያሉ።
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 /NORESTARTWiX Burn ጥቅሎች እና InstallShield
በWiX toolset (Burn) የተሠሩ ጥቅሎች /quiet፣ /norestart እና /logን ይቀበላሉ። MSIን የሚጠቀልሉ የInstallShield ማዋቀሪያ ፕሮግራሞች የ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) ያስጀምራል። መጀመሪያ አይነቱን ያረጋግጡ፤ MSIን ለሚጠቀልሉ የEXE ፋይሎች የMSI መቀየሪያዎች መተላለፍ አለባቸው።
ጸጥ ያለ ጭነት የአስተዳዳሪ መብቶችን ይፈልጋል?
ወደ Program Files ወይም HKLM የሚጽፉ ጫኚዎች ይፈልጋሉ። ትዕዛዙን ከፍ ባለ መብት ከተከፈተ መጠየቂያ ያስኪዱ፣ ወይም እንደ Intune ወይም Configuration Manager ባሉ እንደ SYSTEM በሚሠራ መሣሪያ ያሰማሩት።