Skip to content

Releases: Slade-Bennett/PSRemoteDeploy

v1.0 - Initial Release

06 Feb 04:48

Choose a tag to compare

PSRemoteInstaller v1.0

Initial public release of PSRemoteInstaller, a PowerShell-based remote deployment framework for installing .exe and .msi packages on Windows machines using WinRM and JSON-driven configuration.

This release provides reusable scripts for configuration-based software deployment without requiring SCCM, Intune, or other centralized tooling.


Features

  • Remote software installation via PowerShell Remoting (WinRM)
  • Support for both .exe and .msi installers
  • Declarative JSON configuration for installer definitions
  • Automatic file staging over administrative shares
  • Silent install execution with templated arguments
  • Post-install verification via configurable paths
  • Structured script exit codes for automation and troubleshooting
  • Preflight checks:
    • Administrator privileges
    • Network connectivity
    • DNS resolution
    • WinRM availability

Included Scripts

  • Install-RemoteExe.ps1 – Remote installation of EXE-based installers
  • Install-RemoteMsi.ps1 – Remote installation of MSI packages

Example JSON configurations are provided under configs/ for Anaconda, Python, and MSI-based installs.


Requirements

  • PowerShell 5.1+
  • Local administrator privileges
  • WinRM enabled on target machines
  • Network access to targets (ping + admin shares)
  • Installer binaries accessible via UNC path

Configuration

Install behavior is fully controlled through JSON files, including:

  • Installer location
  • Silent install arguments
  • Target install path
  • Verification paths
  • Installer-specific exit codes

This allows new software packages to be added without modifying script logic.


Exit Codes

Scripts return structured exit codes for common failure scenarios (connectivity, WinRM, file transfer, config validation) plus installer-specific codes offset by 100.

Common MSI codes (0, 1641, 3010, 1602, 1603) are documented in the README.


Notes

  • No automatic reboots (3010/1641 indicate reboot required)
  • Compatible with PowerShell 5.1
  • Uses administrative shares (\\target\C$) for file transfers

This release is suitable for homelabs, small environments, and lightweight infrastructure automation where full deployment platforms are unnecessary.