When working with Windows Installer packages (.msi files), you may often need to install only specific features rather than the entire application. This is particularly useful in enterprise environments where different components need to be deployed to different machines.
To determine the feature names available in an MSI package, you have several options:
# Method 1: Using Windows Installer command line
msiexec /a "path\to\package.msi" /qn
# Method 2: Using ORCA (MSI Editor)
# This provides a complete view of all features and their hierarchy
# Method 3: Using PowerShell
$wi = New-Object -ComObject WindowsInstaller.Installer
$db = $wi.GetType().InvokeMember("OpenDatabase", "InvokeMethod", $null, $wi, @("path\to\package.msi", 0))
$view = $db.GetType().InvokeMember("OpenView", "InvokeMethod", $null, $db, ("SELECT * FROM Feature", 0))
$view.GetType().InvokeMember("Execute", "InvokeMethod", $null, $view, $null)
Once you've identified the feature names, you can install them selectively using the ADDLOCAL parameter:
msiexec /i "SalesLogix_Admin_Tools.msi" ADDLOCAL=Feature1,Feature2 /qn
For the SalesLogix 7.2 Admin Tools example shown in the screenshot, the possible feature names might include:
- SLX_AdminConsole
- SLX_ApplicationServer
- SLX_DataAccessComponents
- SLX_WebComponents
You can combine feature selection with other common MSI parameters:
msiexec /i "package.msi" ADDLOCAL=MainFeature,SubFeature REMOVE=UnwantedFeature TRANSFORMS=":Transform.mst" /qb+
If you encounter issues with feature installation:
- Verify the feature names are case-sensitive in some MSI packages
- Check for feature dependencies using ORCA or similar tools
- Review the installation log for errors (add /l*v install.log to your command)
When working with MSI packages in enterprise environments, selective feature installation becomes crucial for system administrators. The Windows Installer technology allows specifying individual components through the ADDLOCAL
property, but first you need to identify the exact feature names contained in the package.
Using Orca MSI Editor
The most reliable way involves examining the MSI database directly:
1. Download Orca from Microsoft's SDK tools 2. Open your MSI file (e.g., SalesLogix_Admin_Tools.msi) 3. Navigate to the "Feature" table 4. Note the "Feature" column entries which represent installable components
Command-Line Alternative with Lessmsi
For automation scenarios, use this PowerShell approach:
# Install Lessmsi if not available choco install lessmsi -y # Export feature information lessmsi x YourPackage.msi Get-Content YourPackage.msi.dir/Feature.idt | Select-String -Pattern "^\w"
For the SalesLogix 7.2 example shown in the screenshot, after identifying features as "ServerComponents" and "AdminTools", the installation command would be:
msiexec /i SalesLogix_72_Setup.msi ADDLOCAL=ServerComponents /qb
When dealing with complex dependency chains:
# Include dependent features automatically msiexec /i package.msi ADDLOCAL=MainFeature TRANSFORMS=:IncludeDependencies
Always verify installed features using:
Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -match "SalesLogix" } | Select-Object Name, Version, InstallState
For repeatable deployments, create a feature mapping file:
# features.config <Features> <Product name="SalesLogix"> <Feature code="ServerComponents" desc="Core server modules"/> <Feature code="WebAdmin" desc="Web interface"/> </Product> </Features>