Automating Software Installation with PowerShell
I’ve often found myself repeating the same tasks over and over again. One of these tasks is installing software on new machines. To streamline this process, I created a PowerShell script that automates the installation of multiple applications.
The script is now open-sourced — grab it on GitHub: Install-EssentialApps
Batch file
Run-Install.bat handles UAC elevation automatically — no right-clicking required. Double-click it, accept the prompt, and the installer launches with admin rights. If the prompt is declined, it shows a clear message and waits for you to close.
The Script
Install-EssentialApps.ps1 presents an interactive checklist of applications. Navigate with the arrow keys, toggle with Space, and press Enter to install only what you need.
# Each app is a hashtable — easy to customise
$applications = @(
@{Name = "Acrobat Reader"; Path = "Software\Essentials\AcroRdrDC_en_US.exe"; Args = "/sPB" },
@{Name = "Google Chrome"; Path = "Software\Essentials\ChromeStandaloneSetup64.exe"; Args = "/silent /install" },
@{Name = "7-Zip"; Path = "Software\Essentials\7z-x64.exe"; Args = "/S" },
# ... and more
)Paths are relative to $PSScriptRoot — nothing breaks when you move or share the folder.
Breakdown
- Interactive TUI menu — arrow-key checklist; install only the apps you select
- Progress bar — tracks overall installation progress across all selected apps
- Exit code awareness — correctly handles
0,3010, and1641(success with/without reboot required) - Session logging with 90-day rotation — every install is appended to
Install-EssentialApps.log; stale entries are pruned automatically - Quoted dynamic paths — installer arguments with embedded paths are correctly escaped, so installs work regardless of where the folder lives
Get It
Clone the repo, drop your installers into Software\Essentials\, and run Run-Install.bat.
Get Faris Khasawneh’s stories in your inbox
Join Medium for free to get updates from this writer.
→ github.com/5a9awneh/Install-EssentialApps
The README covers requirements, the full app list, silent-install argument reference, and how to add your own apps.









