PSSoftware
A single way to install, uninstall, upgrade and configure software with a single framework.
PSSoftware is a PowerShell module born from necessity. It was built to create a single tool deploy and manage software. No longer do you have to remember:
msiexec.exe /i somemsi.msi /qn /Lvx* C:\Windows\Temp\install.log
...just to deploy a single MSI. PSSoftware simplifies that complexity to just:
Install-Software -MsiInstallerFilePath somemsi.msi
This is what PSSoftware is all about. Removing the complexities of software management.
Version Support
PSv1 | PSv2 | PSv3 | PSv4 | PSv5 | PSv6 |
---|---|---|---|---|---|
No | No | Yes | Yes | Untested | No |
Getting Started
Download
You can download this repository.
Import the Module
Once you've downloaded the repo place the PSSoftware folder in any path in your $PSModulePath
. I recommend copying it to either C:\Program Files\WindowsPowerShell\Modules
or C:\Users\<Username>\Documents\WindowsPowerShell\Modules
.
Once it's in one of those paths you can either import it manually by Import-Module PSSoftware
or rely on auto-module loading.
What's included
In the repo you'll find the following files.
File | Provides |
---|---|
PSSoftware.psm1 | The PowerShell module |
SofwareInstallManager.psd1 | The PowerShell module manifest. |
README.md | Details for quickly understanding the project. |
Function Categories
The PSSoftware module is made up of four rough categories of functions with subcategories in each major category.
Install Functions
- Install-Software
Uninstall Functions
- Uninstall-Software
- Uninstall-ViaMsiZap
- Uninstall-InstallshieldPackage
- Uninstall-WindowsInstallerPackage
- Uninstall-WindowsInstallerPackageWithMsiModule
- Uninstall-WindowsInstallerPackageWithMsiExec
Detection Functions
- Get-InstalledSoftware
- Test-InstalledSoftware
- Compare-FilePath
- Compare-FolderPath
- Compare-RegistryFileToRegistry
- Get-FileVersion
- Get-MyFileHash
Configuration Functions
Registry
- Get-RegistryValue
- Get-RegistryValueForAllUsers
- Import-RegistryFile
- Set-RegistryValueForAllUsers
- Register-File
FileSystem
- Copy-FileWithHashCheck
- Find-InTextFile
- Set-MyFileSystemAcl
Shortcuts
- Get-Shortcut
- New-Shortcut
Processes
- Test-Process
- Get-ChildProcess
- Stop-MyProcess
- Wait-MyProcess
- Wait-WindowsInstaller
Services
- Remove-MyService
Certificates
- Import-Certificate
User Profiles
- Get-AllUsersDesktopFolderPath
- Get-AllUsersProfileFolderPath
- Get-AllUsersStartMenuFolderPath
- Get-UserProfile
- Get-RootUserProfileFolderPath
- Get-UserProfilePath
- Remove-ProfileItem
- Set-AllUserStartupAction