⬇️Installation
PowerShell Universal supports Windows MSI, ZIP, PowerShell module, Docker, IIS, and Linux service installations. Choose the method that matches your hosting environment.
See also
MSI Install (Windows)
The MSI install creates a PowerShell Universal service. By default, PowerShell Universal listens on port 5000. You can navigate to http://localhost:5000
MSI downloads are available on our download page.
System installs run as a Windows service. User installs run when the user logs in to the machine. The user install runs in the user's context.
MSI Parameters
Use uppercase PROPERTY=value arguments with msiexec. The defaults below apply to a new machine-wide installation unless a per-user default is listed.
INSTALLFOLDER
Folder where PowerShell Universal is installed.
Machine: %ProgramFiles%\Universal; per-user: %LocalAppData%\Programs\PowerShellUniversal
MSIINSTALLPERUSER
Installation scope. Set to 1 for a per-user installation; set to 0 for a machine-wide installation.
0
TCPPORT
HTTP port for the server.
5000
HTTPSPORT
HTTPS port when DEVCERT=1.
5001
DEVCERT
Creates and installs a localhost development certificate and enables the HTTPS endpoint. This is disabled for per-user installs.
Machine: 1; per-user: 0
REPOFOLDER
Repository folder for PowerShell Universal configuration files.
Machine: %ProgramData%\UniversalAutomation\Repository; per-user: %LocalAppData%\PowerShellUniversal\Repository
CONNECTIONSTRING
Connection string for the selected persistence provider.
Machine: Data Source=%ProgramData%\UniversalAutomation\database.db; per-user: Data Source=%LocalAppData%\PowerShellUniversal\database.db
DATABASETYPE
Persistence provider. Valid values are SQLite, PostgreSQL, and Microsoft SQL Server.
SQLite
APPSETTINGSPATH
Path where the installer writes appsettings.json when it does not already exist.
Machine: %ProgramData%\PowerShellUniversal\appsettings.json; per-user: %LocalAppData%\PowerShellUniversal\appsettings.json
INSTALLTYPE
Sets the Mode value written to appsettings.json. Desktop writes Desktop mode; any other value writes Server mode.
Server
STARTSERVICE
Starts the PowerShell Universal Windows service after installation. This does not apply to per-user installs because they do not install a Windows service.
Machine: 1; per-user: 0
SERVICEACCOUNT
Fully qualified Windows service account, such as CONTOSO\psu_svc. Leave blank to run as Local System. Machine-wide installs only.
Empty (Local System)
SERVICEACCOUNTPASSWORD
Password for SERVICEACCOUNT. The installer masks this value in its log. Machine-wide installs only.
Empty
OPENBROWSER
Opens the web UI after the Windows service starts successfully. Machine-wide installs only.
1
ADDPSMODULEPATH
Adds the PowerShell Universal module directory to PSModulePath.
1
TELEMETRY
Enables anonymous telemetry collection.
1
STARTUPSHORTCUT
Creates a startup shortcut for a per-user installation.
Per-user: 1
Example
The example below runs a silent, machine-wide MSI installation without starting the service. The account and password values are examples only.
ZIP Install
You can also download the ZIP from our Downloads page if you would like to xcopy deploy the files on Windows or Linux.
Windows
You can start Universal by unzipping the contents, unblocking the files and then executing Universal.Server.exe.
Linux
You can use the following command line on Linux to install and start PowerShell Universal:
Linux Service
You can use systemd to start PowerShell Universal as a service. The below script is an example of downloading a version of PowerShell Universal and installing it as a service:
PowerShell Module
You can use the PowerShell Universal PowerShell module to install the Universal server. To install the module, use Install-Module.
To install the Universal server, you can use Install-PSUServer.
Running this command on Windows creates and starts a Windows service on your machine. Running this command on Linux creates and starts a systemd service on your machine. Running this command on Mac OS downloads and extracts the PowerShell Universal server.
Docker
See the Docker page.
IIS Install
Please visit the IIS hosting documentation for information on how to configure PowerShell Universal as an IIS website.
Antivirus Configuration
PowerShell Universal takes full advantage of PowerShell and the PowerShell SDK. It includes PowerShell scripts directly in the product. Consider configuring antivirus to allow execution of PowerShell scripts in PowerShell Universal.
Directories
The following directories contain examples from a standard Windows system of scripts and executable files that you may need to exclude from antivirus checks. Changing paths within appsettings.json or within the installer requires changing which directories are excluded.
%ProgramData%\PowerShellUniversal
Contains log files and appsettings.json
%ProgramData%\UniversalAutomation
Contains PowerShell scripts and artifacts. Contains the single file database when not using SQL integration.
%ProgramFiles%\Universal
Contains PowerShell Universal application executables, libraries and modules.
Executables
It may be necessary to exclude certain executables that run PowerShell scripts. The below is a list of executables that run PowerShell from PowerShell Universal.
Universal.Server.exe
The PowerShell Universal core service.
PowerShellUniversal.Host.exe
The PowerShell Universal host environment executable.
pwsh.exe
PowerShell 7.x
PowerShell.exe
PowerShell 5.x
Default Admin Name and Password
You can use the $ENV:PSUDefaultAdminName and $ENV:PSUDefaultAdminPassword environment variables to change this behavior. These values are only used if no administrator account already exists. This is useful for cloud-based installations.
Agent
The PowerShell Universal Agent executes Event Hub actions. Install it depending on your environment:
Windows (MSI)
The PowerShell Universal Agent MSI is on our download page. After installing the MSI, a PowerShell Universal Agent service runs on your machine. Configure it to connect to PowerShell Universal.
ZIP
ZIP files for each platform we support are on our downloads page. Each ZIP contains a PSUAgent.exe or PSUAgent file that can start an agent. Run the process as a service for it to start whenever the machine reboots.
Docker
The devolutions/powershell-universal-agent:latest container image provides the PowerShell Universal Agent as a Linux docker container.
Next Steps
At this point, Universal is up and running. Visit http://localhost:5000 or your default port to navigate to the admin console. Log in with the default admin name and password or create a default admin account.
Last updated
Was this helpful?