Windows
Use the instructions below to manually install the Password Boss app
Table of Contents
Quick Notes - Read First
When installing via an RMM, keep these details in mind.
The RMM installation process is split into two pieces.
- A pre-installer that needs to run with admin rights can run at any time, meaning the user does not need to be logged in.
- The actual Password Boss application installer. The app is installed into the user's Windows profile directory, this means the user must be logged in to install Password Boss. The user does NOT need admin rights if the pre-installer and prerequisites have already run on the PC.
Installing the Windows app
- The Password Boss Windows installer is available as both an EXE and an MSI.
- Both versions of the installer can be installed silently by adding the command line parameters listed below to the installer.
- The initial install requires admin rights for the user unless you use the PreInstaller via an RMM or other deployment tool in which case the Password Boss app can be installed without admin rights.
-
Subsequent updates to the app once it is installed do not require admin rights.
- The Windows installer (both EXE and MSI versions) is a 2-part installer. The stub installer, EXE or MSI, rarely changes and can be added to your deployment tools. When the stub installer runs it will download the latest version of the actual application from our servers so each install is always installing the latest version of the app.
Prerequisites - Windows
Password Boss requires .Net 4.7.2** to be installed on each workstation. The application will be installed automatically during a manual install.
If you are deploying with an RMM or other scripted install where the end-users do not have admin rights to their workstations, you will want to ensure these applications are installed before deploying Password Boss.
Manual Install
- Visit https://www.passwordboss.com/download. The website will detect which operating system you are using and will download the correct installer for you.
- After downloading the installer, run the file and follow the prompts to install.
RMM Deployment
Deploying Password Boss with your RMM removes the requirement that the end-users need admin rights for the install. The installation process is a two-step process where the portions of Password Boss that require admin rights are installed using the PreInstaller, which runs as an admin or Local System, and the main client app installer that runs as the end-user.
- The PreInstaller can be run in bulk on all managed workstations before the actual client app deployment.
- The PreInstaller has no UI, installs silently, and will not be listed in Add/Remove Programs.
- The PreInstaller makes all of the registry changes that need admin rights. The PreInstaller MUST be run with admin or Local System permissions
- The settings changed by the PreInstaller can be removed by running the PreInstaller with a /uninstall switch.
Deploying Password Boss via RMM is a 2 step process
Step 1 - Deploy PBPreInstaller.exe as admin or system.
Step 2 - Deploy Password_Boss.exe (or .msi) as the end-user while they are logged in. Do not deploy Password_Boss.exe as admin or system.
Install Steps
- Download the PreInstaller
- Run the PreInstaller once per managed workstation using your RMM. No command lines or parameters are needed for the installation.
- If needed for troubleshooting, you can enable logging for the PreInstaller by adding a /verbose parameter. Logs are stored in the %TEMP% folder and named PasswordBoss-PreInstall-[Date]{Time].log.
- Install the client app using the instructions below for either EXE or MSI deployment. The client app MUST be run as the end-user, or the application will not work for the user.
Generic Scripted Deployment Instructions
MSI
- Download the MSI installer
- The installer should be named Password_Boss.msi
- To run the installer silently, add the EXEOPTIONS=" /q2" parameter when you execute the installer:
Text
/path/to/Password_Boss.msi EXEOPTIONS="/q2"
**replace the "/path/to" with the path to where you downloaded the file to**
Note - Case SeNsiTiVe
EXEOPTIONS must be passed as UPPERCASE.
- To deploy the Password Boss app to remote devices, invoke the installer with the silent option from your preferred software distribution solution.
- The installer will automatically download the latest version of Password Boss from the internet during the install process so your users are always installed with the current version.
EXE
- Download the EXE installer
- The installer is named Password_Boss.exe
- To run the installer silently, add the /q2 parameter when you execute the installer:
Text
/path/to/Password_Boss.exe /q2
**replace the "/path/to" with the path to where you downloaded the file to**
- To deploy the Password Boss app to remote devices, invoke the installer with the silent option from your preferred software distribution solution.
- The installer will automatically download the latest version of Password Boss from the internet during installation, so your users always get the current version.
PowerShell Script Instructions
Password Boss can be deployed through PowerShell scrips as an alternative to building a script in an RMM tool.
Deployment of Password Boss via PowerShell is a 2 Step Process
Step 1 - Deploy PBPreClient.ps1 first as an administrator on the system
Step 2 - Deploy PBClient.ps1 as the end-user while they are logged in. Do not deploy Password_Boss.exe as admin or system.
Below is the PBPreClient.ps1 script. In your deployment system, you must run this script on the system first as an administrator before installing Password Boss. This script will download the PreInsaller.exe and deploy on the machine as Admin. Copy and paste the script below to a notepad and save the file as PBPreClient.ps1 before using it.
PBPreClient.ps1
# Copyright (c) 2024 Password Boss
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the AutoElevate nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL OPENDNS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<#
.SYNOPSIS
Installs the Password Boss Preinstaller and Client
#>
# Set $DebugPrintEnabled = 1 to enabled debug log printing to see what's going on.
$DebugPrintEnabled = 1
$PreInstallerName = "PBPreInstaller.exe"
$InstallerPath = Join-Path $Env:TMP $PreInstallerName
$DownloadBase = "https://install.passwordboss.com"
$DownloadURL = $DownloadBase + "/" + $PreInstallerName
$ScriptFailed = "Script Failed!"
function Get-TimeStamp {
return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
}
function Debug-Print ($msg) {
if ($DebugPrintEnabled -eq 1) {
Write-Host "$(Get-TimeStamp) [DEBUG] $msg"
}
}
function Get-PreInstaller {
Debug-Print("Downloading installer...")
$WebClient = New-Object System.Net.WebClient
try {
$WebClient.DownloadFile($DownloadURL, $InstallerPath)
} catch {
$ErrorMessage = $_.Exception.Message
Write-Host "$(Get-TimeStamp) $ErrorMessage"
}
if ( ! (Test-Path $InstallerPath)) {
$DownloadError = "Failed to download the Password Boss PreInstaller from $DownloadURL"
Write-Host "$(Get-TimeStamp) $DownloadError"
throw $ScriptFailed
}
Debug-Print("Installer downloaded to $InstallerPath...")
}
function Install-Agent () {
Debug-Print("Executing installer...")
Start-Process $InstallerPath -Wait
}
function Verify-Installation () {
Debug-Print("Verifying Installation...")
if ( ! (Get-ItemPropertyValue -Path "HKLM:\Software\PasswordBoss" -Name "PreInstall") -eq 'True') {
$VerifiationError = "The Preinstaller installation failed!"
Write-Host "$(Get-TimeStamp) $VerificationError"
throw $ScriptFailed
}
}
function main () {
Get-PreInstaller
Install-Agent
Verify-Installation
Write-Host "$(Get-TimeStamp) PBPreinstaller successfully installed!"
}
try
{
main
} catch {
$ErrorMessage = $_.Exception.Message
Write-Host "$(Get-TimeStamp) $ErrorMessage"
exit 1
}
Below is the PBClient.ps1 script. In your deployment system, you will need to run this script on the system as the logged-in user after successfully running the PBPreClient.ps1 script. This script will download the Password_Boss.exe file and execute it as the user. Copy and paste the script below to a notepad and save the file as PBClient.ps1 before using it.
PBClient.ps1
# Copyright (c) 2022 Password Boss
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the AutoElevate nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL OPENDNS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<#
.SYNOPSIS
Installs the Password Boss Preinstaller and Client
#>
# Run powershell in a clean install
# PowerShell -ExecutionPolicy Bypass
# Set $DebugPrintEnabled = 1 to enabled debug log printing to see what's going on.
$DebugPrintEnabled = 1
$InstallerName = "Password_Boss.exe"
$InstallerPath = Join-Path $Env:TMP $InstallerName
$DownloadBase = "https://install.passwordboss.com"
$DownloadURL = $DownloadBase + "/" + $InstallerName
function Get-TimeStamp {
return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
}
function Debug-Print ($msg) {
if ($DebugPrintEnabled -eq 1) {
Write-Host "$(Get-TimeStamp) [DEBUG] $msg"
}
}
function Get-Installer {
Debug-Print("Downloading installer...")
$WebClient = New-Object System.Net.WebClient
try {
$WebClient.DownloadFile($DownloadURL, $InstallerPath)
} catch {
$ErrorMessage = $_.Exception.Message
Write-Host "$(Get-TimeStamp) $ErrorMessage"
}
if ( ! (Test-Path $InstallerPath)) {
$DownloadError = "Failed to download the Password Boss Installer from $DownloadURL"
Write-Host "$(Get-TimeStamp) $DownloadError"
throw $ScriptFailed
}
Debug-Print("Installer downloaded to $InstallerPath...")
}
function Install-Agent () {
Debug-Print("Executing installer...")
$Arguments = "/q2"
Start-Process $InstallerPath -ArgumentList $Arguments -Wait
}
function Verify-Installation () {
Debug-Print("Verifying Installation...")
if ((Get-ItemProperty -Path "HKCU:\Software\PasswordBoss") -eq $null) {
$VerifiationError = "The Installer installation failed!"
Write-Host "$(Get-TimeStamp) $VerificationError"
throw $ScriptFailed
}
}
function main () {
Get-Installer
Install-Agent
Verify-Installation
Write-Host "$(Get-TimeStamp) Password Boss Client successfully installed!"
}
try
{
main
} catch {
$ErrorMessage = $_.Exception.Message
Write-Host "$(Get-TimeStamp) $ErrorMessage"
exit 1
}