A comprehensive PowerShell script for Windows 11 that provides an interactive, hierarchical menu system for installing and managing software packages. This tool supports multiple installation methods including Winget, MSI, EXE, PowerShell modules, and includes powerful search capabilities for discovering new software.
✅ Hierarchical Navigation System
- Main Categories → Subcategories → Software Selection
- Easy back navigation between levels
- Clear visual organization of software packages
- Paged display for large lists
✅ Multiple Installation Methods
- Winget packages (primary method) - with interactive installation UI
- MSI installers with passive mode (shows progress, allows customization)
- EXE installers with standard installation UI
- PowerShell modules from PowerShell Gallery
- PowerShell scripts from URLs
- GitHub releases with automatic asset detection
✅ Interactive Installation Experience
- Non-silent installations - you can choose installation paths and options
- Installation confirmation dialogs
- Progress tracking and real-time feedback
- Custom installation arguments support
- Installation location selection (for supported installers)
✅ Search & Discovery
- Built-in search function - Press "S" from main menu to search and add software
- Search Winget repositories for new software packages
- Search GitHub repositories for open-source tools
- Automatic addition to appropriate categories with guided category selection
- Smart search results - finds MemTest86, Steam, Double Commander, and thousands more
- No manual JSON editing required - everything is handled through the interface
- UTF-8 encoding support for international characters
✅ User Experience
- Interactive menu system with clear prompts
- Installation confirmation before proceeding
- Batch installation of multiple packages
- Progress tracking during installations
- Comprehensive error handling and logging
- System inventory and export capabilities - Press "0" to view installed software
- Software audit tools - Generate CSV reports of all installed software
- Automatic script directory detection (run from anywhere)
- Non-destructive operation - never modifies system without confirmation
- IDEs & Editors: Visual Studio Code, Visual Studio 2022, IntelliJ IDEA, Notepad++, Sublime Text, PyCharm, Android Studio, Zed Editor
- Version Control: Git, GitHub Desktop, TortoiseGit, Sourcetree
- Databases: MySQL Workbench, DBeaver, PostgreSQL, MongoDB Compass
- Runtime & Languages: Python 3, Node.js, Java JDK 17, .NET SDK, Go, Rust
- API & Tools: Postman, Insomnia, Docker Desktop, Wireshark
- PowerShell Modules: Posh-Git, PowerShellGet, Az PowerShell
- System Tools: PowerToys, Process Monitor, TreeSize, CCleaner, Speccy, HWiNFO, CPU-Z, GPU-Z, MemTest86, Windows Terminal, PowerShell Core, and 15+ Stardock tools
- File Management: 7-Zip, WinRAR, Everything, FreeCommander, Double Commander
- Security: Malwarebytes, Bitdefender, KeePass, Bitwarden
- Remote Access: PuTTY, KiTTY, MobaXterm, TeamViewer, AnyDesk, Chrome Remote Desktop
# Clone the repository
git clone https://github.com/ddemott/SoftwareInstaller.git
cd SoftwareInstaller
# Set execution policy (if needed)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Run the script from any directory
.\SoftwareInstaller.ps1# Run the interactive menu system
.\SoftwareInstaller.ps1
# To search for new software (like MemTest86):
# 1. Run the script: .\SoftwareInstaller.ps1
# 2. Press "S" for "Search & add new software"
# 3. Enter your search term (e.g., "memtest")
# 4. Select from Winget or GitHub results
# 5. Choose category and confirm addition
# The script automatically detects its own directory for required files
# You can run it from anywhere - no need to change directory firstThe script now uses interactive installation modes by default:
- Winget: Interactive mode - shows installation progress and allows customization
- MSI: Passive mode (
/passive) - shows progress bar, allows some customization - EXE: Standard installation UI - full installer interface
- GitHub Releases: Automatic detection and standard installation
This allows you to:
- Choose installation directories
- Customize installation options
- See installation progress
- Handle any prompts during installation
- Windows 11 (or Windows 10 with compatible PowerShell)
- PowerShell 5.1+ (comes with Windows)
- Administrator privileges (for software installation)
- Internet connection (for downloading packages)
- Winget (recommended, comes with Windows 11)
SoftwareInstaller.ps1- Main script with hierarchical navigation systemsoftware-categories.json- Complete software catalog with all categories (250+ packages)Tests/- Directory containing all test and validation scriptssimple-test.ps1- Verification script for checking software catalog integritytest-suite.ps1- Comprehensive test suite for all software categoriesvalidate.ps1- Validation script for JSON structure and data integritydebug-search.ps1- Debugging script for search functionality
getInstalledFiles.ps1- System audit tool for generating installed software reportsinstallation_log_*.txt- Generated installation logs (timestamped)installed_software_*.json- Exported software inventory (if requested)AllInstalledSoftware_*.csv- Complete system software audit reports
Don't manually edit JSON files! Use the built-in search feature:
- Run
.\SoftwareInstaller.ps1 - Press "S" for "Search & add new software"
- Enter your search term (e.g., "memtest86", "steam")
- Choose from Winget or GitHub search results
- Select the appropriate category for the software
- Confirm the addition - it's automatically added to your catalog!
Recent Additions Made Easy:
- ✅ MemTest86 - Memory testing tool (added via Custom URL)
- ✅ Steam games - Automatically detected from system
- ✅ Double Commander - File manager via Winget
- Interactive mode - Shows installation UI when available
- Accepts package and source agreements automatically
- Allows you to see progress and choose options
- Passive mode (
/passive) - Shows progress bar - Allows basic customization options
- Non-blocking installation experience
- Standard installation - Full installer interface
- Complete control over installation options
- Choose installation directory and features
- Automatic asset detection for Windows
- Supports .exe, .msi, and .zip files
- Creates desktop shortcuts for extracted applications
- Custom installation arguments supported
- Installs to current user scope
- Force installation with clobber allowed
- Verifies successful installation
🔍 See Active Issues: Check our GitHub Issues for current bugs and feature requests.
- Search and Add: ✅ SOLVED - You can easily add missing software using the built-in search ("S" from main menu)
- Software Auditing: ✅ AVAILABLE - Use
getInstalledFiles.ps1to generate complete system software reports - Interactive Installations: Some installers may still run in silent mode if they don't support interactive options
- GitHub API Rate Limits: Search functionality may be temporarily limited after heavy use
- Winget Dependency: Script requires Winget to be installed and accessible
- Admin Rights: Some installations require administrator privileges
- PowerShell Execution Policy: Default Windows security settings may prevent script execution
- Installation Path Selection: Not all installers support custom path selection (depends on the software)
This project is licensed under the MIT License.
Project Status: ✅ COMPLETED & READY FOR USE
The PowerShell Software Installation Manager is fully functional with comprehensive search, installation, and management capabilities!