360™: Everbridge 360™ MSIX Package Deployment

Everbridge 360™ for Windows is distributed as an MSIX package. This format ensures reliability and security. You can deliver the MSIX package to client devices using device and application management tools like Microsoft Intune and Microsoft Endpoint Configuration Manager.

Read more here.

MSIX packages can also be deployed using PowerShell. Depending on how your company controls its Windows devices there are different approaches to take.

Physical machine with single user

Installation and Updates

In the case you have a machine with just one user, the following PowerShell script will install the App silently. To update, run the same command with the updated package.

Add-AppxPackage -Path "C:\Path\To\Your\Everbridge360.msix"

Once installed the App will automatically start the next time the user logs into their machine. To trigger the App to start as soon as the App installs you can use the following PowerShell script.

start ebenterprise://?

Uninstalling

Get-AppxPackage | where {$_.Name -match 'EverbridgeInc.Everbridge360'} | Remove-AppxPackage

 

Physical machine with multiple users

Installation and Updates

Due to how Windows installs MSIX packages at the machine level, the process for installing for multiple users needs some additional steps. In the PowerShell script below we make use of Windows Active Setup.  Active Setup is a mechanism for executing commands once per user early during logon and we use it to ensure the package is available for all existing users on a machine. To update, run the same command with the updated package. This PowerShell script will need to be run with administrator privileges.

# Specify the path to the MSIX package
$packagePath = "C:\Path\To\Your\Everbridge360.msix"

# Install the package on the local machine
Add-AppxProvisionedPackage -PackagePath $packagePath -Online -SkipLicense

# Retrieve information about the Everbridge360 app
$appPackage = Get-AppxProvisionedPackage -Online | Where-Object { $_.DisplayName -eq "EverbridgeInc.Everbridge360" }
$packageName = $appPackage.PackageName
$version = $appPackage.Version.Replace(".", ",")

# Define the registry key for the Active Setup Component
$keyPath = "HKLM:\Software\Microsoft\Active Setup\Installed Components\Everbridge360"

# Create the registry key if it doesn't exist
if (-not (Test-Path -Path $keyPath)) {
New-Item -Path $keyPath -Force
}

# Set the default value (display name)
Set-ItemProperty -Path $keyPath -Name "(default)" -Value $appPackage.DisplayName

# Set the StubPath (command to run on user login)
$stubPath = @"
"$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe" -WindowStyle Hidden -ExecutionPolicy Bypass -Command "Add-AppxPackage -RegisterByFamilyName -MainPackage $packageName"
"@
Set-ItemProperty -Path $keyPath -Name "StubPath" -Value $stubPath

# Set the version value
Set-ItemProperty -Path $keyPath -Name "Version" -Value $version

# Trigger the Active Setup for the current user
."$env:SystemRoot\system32\runonce.exe" -ArgumentList "/AlternateShellStartup"

 

Automatically start the App after install

Depending on who the installation script is running as there are two ways to trigger the App to launch after installing with PowerShell.

If the script running as the current user.

# Wait for local install to be available, then start the Everbridge360 app
$localPackage = Get-AppxPackage -Name "EverbridgeInc.Everbridge360"
while ($localPackage -eq $null)
{
Start-Sleep -Seconds 2
$localPackage = Get-AppxPackage -Name "EverbridgeInc.Everbridge360"
}

start ebenterprise://?

If the script is not running as the current user, (such as the SYSTEM account) then the script needs to create a one-off Task that will run as the current user.

# Register task to start Everbridge 360 as the current user after 10s
$username = Get-WmiObject Win32_ComputerSystem | Select -ExpandProperty UserName
$principal = New-ScheduledTaskPrincipal -UserId $username -LogonType Interactive
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddSeconds(10)
$action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c start ebenterprise://?"
Register-ScheduledTask -TaskName "StartEverbridge360" -Trigger $Trigger -Action $Action -Principal $principal -Settings $settings

# Auto clean up the task after 1min
$task = (Get-ScheduledTask -TaskName "StartEverbridge360")
$task.Settings.DeleteExpiredTaskAfter = "PT0S"
$task.Triggers[0].EndBoundary = (Get-Date).AddSeconds(60).ToString('s')
Set-ScheduledTask -InputObject $task

 

Uninstalling

This PowerShell script will need to be run with administrator privileges. 

Get-AppxPackage | where {$_.Name -match 'EverbridgeInc.Everbridge360'} | Remove-AppxPackage -AllUsers
Get-AppxProvisionedPackage -Online | where {$_.DisplayName -match 'EverbridgeInc.Everbridge360'} | Remove-AppxProvisionedPackage -Online

 

Machine Image

Installation and Updates

To add the App to a machine image, you can use the following PowerShell script. To update, run the same command with the updated package.

Deployment Image Servicing and Management (DISM) cmdlets can be used install, uninstall, and configure MSIX packages on a Windows image before deployment. More information can be found here.

Add-AppxProvisionedPackage -PackagePath "C:\Path\To\Your\Everbridge360.msix" -Online -SkipLicense

Automatic "Runs at log-in"

The App should be set to run at log-in by default, but depending on the machine setup, Windows may not apply this until the App has been run once.

If the App is not starting automatically on user login, you can add the following value to the RunOnce key in the Windows registry.

Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
Name: Eb360Startup
Type: String
Value: start ebenterprise://

Uninstalling

This PowerShell script will need to be run with administrator privileges. 

Get-AppxProvisionedPackage -Online | where {$_.DisplayName -match 'EverbridgeInc.Everbridge360'} | Remove-AppxProvisionedPackage -Online
Was this article helpful?
0 out of 0 found this helpful

Article Feedback


While we can’t respond to you directly, we’d love to know how we can improve the article.

Article is closed for comments.