108 lines
4.2 KiB
JavaScript
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.'
|
|
}
|
|
];
|