Files
poshmanager/server/data/installerCatalog.js
2026-06-25 12:30:55 -05:00

108 lines
4.2 KiB
JavaScript

// Knowledge base of common Windows installer technologies and their silent
// install/uninstall command lines. Command templates use placeholders:
// {file} the installer file name/path
// {productCode} the MSI product code (MSI/MSP)
// {app} the installed app folder (operator fills in)
// {packageName} the MSIX/AppX package name
// Confidence reflects how reliably the technology can be inferred from a file
// name alone; binary signature sniffing (Phase 5) raises it.
export const INSTALLER_TECHNOLOGIES = [
{
id: 'msi',
label: 'Windows Installer (MSI)',
extensions: ['.msi'],
install: 'msiexec.exe /i "{file}" /qn /norestart',
uninstall: 'msiexec.exe /x "{productCode}" /qn /norestart',
psadtInstall: "Start-ADTMsiProcess -Action Install -FilePath '{file}'",
psadtUninstall: "Start-ADTMsiProcess -Action Uninstall -ProductCode '{productCode}'",
detection: 'msi',
notes: 'MSI is silent with /qn. Use the product code for uninstall and detection.'
},
{
id: 'msp',
label: 'Windows Installer Patch (MSP)',
extensions: ['.msp'],
install: 'msiexec.exe /p "{file}" /qn /norestart',
uninstall: '',
psadtInstall: "Start-ADTMsiProcess -Action Patch -FilePath '{file}'",
detection: 'msi',
notes: 'MSP applies a patch to an installed MSI.'
},
{
id: 'inno',
label: 'Inno Setup',
extensions: ['.exe'],
hints: ['inno'],
install: '"{file}" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-',
uninstall: '"%ProgramFiles%\\{app}\\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART',
psadtInstall: "Start-ADTProcess -FilePath '{file}' -ArgumentList '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-'",
detection: 'registry-uninstall',
notes: 'Inno Setup uses /VERYSILENT; the uninstaller is unins000.exe in the install folder.'
},
{
id: 'nsis',
label: 'NSIS (Nullsoft)',
extensions: ['.exe'],
hints: ['nsis'],
install: '"{file}" /S',
uninstall: '"%ProgramFiles%\\{app}\\uninstall.exe" /S',
psadtInstall: "Start-ADTProcess -FilePath '{file}' -ArgumentList '/S'",
detection: 'registry-uninstall',
notes: 'NSIS uses an uppercase /S for silent install.'
},
{
id: 'installshield',
label: 'InstallShield',
extensions: ['.exe'],
hints: ['installshield'],
install: '"{file}" /s /v"/qn"',
uninstall: '"{file}" /s /x /v"/qn"',
psadtInstall: "Start-ADTProcess -FilePath '{file}' -ArgumentList '/s /v\"/qn\"'",
detection: 'registry-uninstall',
notes: 'InstallShield; older versions may require a recorded response file (.iss).'
},
{
id: 'wix-burn',
label: 'WiX Burn bundle',
extensions: ['.exe'],
hints: ['bundle', 'burn'],
install: '"{file}" /quiet /norestart',
uninstall: '"{file}" /uninstall /quiet /norestart',
psadtInstall: "Start-ADTProcess -FilePath '{file}' -ArgumentList '/quiet /norestart'",
detection: 'registry-uninstall',
notes: 'WiX Burn bootstrapper uses /quiet /norestart.'
},
{
id: 'squirrel',
label: 'Squirrel (Electron)',
extensions: ['.exe'],
hints: ['squirrel'],
install: '"{file}" --silent',
uninstall: '"{file}" --uninstall --silent',
psadtInstall: "Start-ADTProcess -FilePath '{file}' -ArgumentList '--silent'",
detection: 'registry-uninstall',
notes: 'Squirrel installers (many Electron apps) use --silent.'
},
{
id: 'msix',
label: 'MSIX / AppX',
extensions: ['.msix', '.msixbundle', '.appx', '.appxbundle'],
install: 'Add-AppxProvisionedPackage -Online -PackagePath "{file}" -SkipLicense',
uninstall: 'Remove-AppxProvisionedPackage -Online -PackageName "{packageName}"',
psadtInstall: "Add-AppxProvisionedPackage -Online -PackagePath '{file}' -SkipLicense",
detection: 'appx',
notes: 'MSIX/AppX provisioned package; detection via Get-AppxPackage.'
},
{
id: 'exe',
label: 'Generic EXE',
extensions: ['.exe'],
install: '"{file}" /S',
uninstall: '',
psadtInstall: "Start-ADTProcess -FilePath '{file}' -ArgumentList '/S'",
detection: 'registry-uninstall',
notes: 'Unknown EXE installer; confirm the silent switch with the vendor. Common switches: /S, /silent, /quiet, /VERYSILENT.'
}
];