Application of the Week – Zoom

Zoom is popular for it’s solutions for Meetings, Chat and Video Webinars. In this blog I will explain how to create a Smart Icon for Zoom.

This Smart Icon contains two actions in one Launch action set for which ‘Stop at first effective action’ is set:

  • the first action runs the zoom.exe executable, when Zoom Client for Meetings is installed (per machine, using the MSI for IT admins)
  • the second action launches the Zoom url when zoom.exe is not available.

Now, if you only have a browser and you didn’t download any Zoom plugins or Zoom Client for Meetings, this Features across browsers matrix is a good reference for what the Zoom webclient supports.

Zoom states using Zoom with only a browser, it seems Google Chrome functions best. Which means that in the Open URL action for our Launch action set we set the Browser to ‘Chrome’.

Don’t worry, if Chrome is not installed it will then use the default browser.

If you need to use all Zoom features, you can create a Managed Package for and deploy Zoom Client for Meetings. This managed package doesn’t use the legacy setup, but Zoom’s MSI meant for IT admins to deploy on selected or all company managed devices.

In addition to that you can opt to create a managed package for the Zoom plugins for IBM Notes, Outlook and Skype for Business. The setups installed components to have Zoom integration with your favorite e-mail client and calendar.

Here’s the PowerShell script to create a Smart Icon for Zoom:

Import-Module "C:Program Files (x86)Liquit WorkspacePowerShell3.0Liquit.Server.PowerShell.dll" -Prefix "Liquit"

$liquitZoneUsername = "localadmin"
$liquitZonePassword = Read-Host "Enter Password" -AsSecureString
$liquitCredentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $liquitZoneUsername, $liquitZonePassword
$liquitZone = ""

$packageName = "Zoom"
$packageDisplayName = "Zoom"
$packageDescription = "Zoom"

$liquitContext = Connect-LiquitWorkspace -URI $liquitZone -Credential $liquitCredentials

$webClient = New-Object System.Net.WebClient
$iconContent = New-LiquitContent -Path $zoomIconPath

$package = New-LiquitPackage -Name $packageName `
                             -Type "Launch" `
                             -DisplayName $packageDisplayName `
                             -Description $packageDescription `
                             -Priority 100 `
                             -Enabled $true `
                             -Offline $True `
                             -Web $false `
                             -Icon $iconContent 

#create the snapshot for this package
$snapshot = New-LiquitPackageSnapshot -Package $package

#define launch action set
$actionset = New-LiquitActionSet -snapshot $snapshot `
                                 -Type Launch `
                                 -name 'Launch' `
                                 -Enabled $true `
                                 -Frequency Always `
                                 -Process StopAtFirstEffectiveAction

#define the first launch action
$actionset_action1 = New-LiquitAction -ActionSet $actionset `
                                      -Name 'Start Zoom' `
                                      -Type 'processstart' `
                                      -Enabled $true `
                                      -IgnoreErrors $false `
                                      -Settings @{name = '${ProgramFiles32}Zoombinzoom.exe'; parameters = "";} `
                                      -Context User

#define the filter set for the first action
$filterset1 = New-LiquitFilterSet -Action $actionset_action1

#add a filter to the first action
$filter1 = new-LiquitFilter -FilterSet $filterset1 -type fileexists -Settings @{path = '${ProgramFiles}Zoombinzoom.exe';} -Value "true" 

#set the operator for the entity filter to AND
Set-LiquitEntityFilter -Action $actionset_action1 -Operator Or

#define the second launch action
$actionset_action2 = New-LiquitAction -ActionSet $actionset `
                                      -Name 'Open Zoom Website' `
                                      -Type 'openurl' `
                                      -Enabled $true `
                                      -IgnoreErrors $false `
                                      -Settings @{ url = ''; browser = 3;} `
                                      -Context User

#publish the package
Publish-LiquitPackageSnapshot -Snapshot $snapshot -stage Production 

#set the entitlement
$identity = Get-LiquitIdentity -id "LOCALeveryone"
New-LiquitPackageEntitlement -Package $package -Identity $identity -Publish Workspace