This page is for IT administrators who want to be able to install and update the Commtap Symboliser for PowerPoint from the command line.
Installation
You can do a silent install of the symboliser from an administrator command line as follows:
msiexec /i "path\to\msi\file.msi" KEY_ENTERED_BY_USER="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" /qn
You could leave the license key out, but then each individual user of the computer will need to enter in the license key for their accounts. To add the license key at a later point, you can either install a newer version of the symboliser (if one is available) with the license key, or uninstall and then re-install the existing version – this time using the license key. For example:
msiexec /x "path\to\msi\file.msi" /qn
msiexec /i "path\to\msi\file.msi" KEY_ENTERED_BY_USER="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" /q
Note if the license key is entered incorrectly in the command, the installation will still continue, but no license key will be saved and the software will function in trial mode (users will be able to use it for 30 days). You can check if the license key was correctly stored by opening PowerPoint, symbolise something (type in say “cat” into a text box, and then click on symbolise) and then in the Commtap Symboliser group choose “Preferences” and “Help/About” – you should see a line starting “License key” and it should show part of the license key you entered.
Making a symbols list permanently available to all users of a computer
If you want to:
- have a centralised set of symbols/images stored in a network location that you would like people to use across your organisation;
- install a symbols set on a computer and make that available to users of the computer without them having to add the symbol set themselves (such as a commercial or open-source symbol set);
you can use this Windows PowerShell script – which adds a symbols list to users’ profiles:
<#
.SYNOPSIS
Install a reference to a symbols list so that it appears for all users of
this computer.
.DESCRIPTION
This creates a reference to an image/symbols list from the Commtap
Symboliser installation directory - making it appear for all users of the
Commtap Symboliser for PowerPoint on this computer. You could use this
where:
- you want to have a centralised set of symbols/images stored in a network
location that you would like people to use across your organisation;
- you want to install a symbols set on a computer and make that available
to users of the computer without them having to add the symbol set
themselves (such as a commercial or open-source symbol set).
Unlike symbols lists that users can add themselves, symbol lists added in
this way cannot be removed by a user from their profile.
You will also need to have:
- created the symbols directory elsewhere on this computer or network
location;
- put some images in this directory - or anywhere in the directory tree
below this directory;
- created a "csl" (Commtap Symboliser List) file in this directory. Do this
by opening PowerPoint (with the symboliser installed), in the Commtap
Symboliser group on the Home tab, go to Preferences > "Create Word List
from Folder" and select the directory you want to use. This creates the
appropriate csl file in the right place (you don't need to do anything
else with it).
If at any point you want to change the images in this directory:
- make any changes (i.e. adding, removing or renaming any image):
- rebuild the word list: go to Preferences (in the Commtap Symboliser group
in PowerPoint), choose the word list in the list, then "Rebuild Word List".
Anyone using the Symboliser who has write access to this directory will
also be able to rebuild the word list in this way.
Removing the symbol list reference
Remove the directory
\path-to-commtap-symboliser-installation\Symbols\name-of-word-list
for example:
Remove-Item -Recurse "C:\Program Files (x86)\Commtap Symboliser\Symbols\our school symbols"
This does not actually remove the symbols list from users' profiles, but
the list becomes like any other list that they have included themselves -
and they will be able to remove it themselves if they so wish (by going to
"Preferences" in the Commtap Symboliser group in PowerPoint, choosing the
list and choosing "Remove Word List").
For more information, visit symboliser.commtap.org
DISCLAIMER
This program is provided in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
Last updated: 16 November 2018
.EXAMPLE
CS-INSTALL-LIST "Our School Symbols" "\\host-name\share\symbols\our school symbols"
.EXAMPLE
CS-INSTALL-LIST "Our School Symbols" "\\host-name\share\symbols\our school symbols" "C:\Program Files (x86)\Commtap Symboliser"
.NOTES
#>
param(
# The name you would like your images list to be stored as.
[Parameter(Mandatory = $true)]
[String]$ListName,
# Path to the directory which contains the images. (With or without trailing
# slash).
# For a directory on a network, this should be a UNC path.
# Note, images can be contained anywhere in the directory structure below
# this directory.
[Parameter(Mandatory = $true)]
[String]$ImagesPath,
# Installation path for the Commtap Symboliser.
# If this is not supplied, the script will attempt to find it from the
# registry.
[Parameter()]
[String]$InstallPath = ""
)
function InstallPath() {
$InstallPath = (Get-ItemProperty -Path hklm:SOFTWARE\WOW6432Node\Commtap\CommtapSymboliser -Name "path").path.TrimEnd("\")
Return $InstallPath
}
if ($InstallPath -eq "") {
$InstallPath = InstallPath
}
else {
$InstallPath = $InstallPath.TrimEnd("\")
}
$ImagesPath = $ImagesPath.TrimEnd("\")
if(!(Test-Path -Path $InstallPath -PathType Container)){
Throw("The install path ($InstallPath) could not be found.")
}
if(!(Test-Path -Path $ImagesPath -PathType Container)){
Throw("The images path ($ImagesPath) could not be found.")
}
$ListsDir = $InstallPath + "\Symbols"
$ListDir = $ListsDir + "\" + $ListName
if(!(Test-Path -Path $ListsDir -PathType Container)){
mkdir $ListsDir | Out-Null
}
if(!(Test-Path -Path $ListDir -PathType Container)){
mkdir $ListDir | Out-Null
}
# Create/overwrite the csl file:
$CSLFile = $ListDir + "\" + $ListName + ".csl"
$CSLOldFileExists = $false
$CSLOldModifiedTime = 0
if(Test-Path -Path $CSLFile -PathType Leaf){
$CSLOldFileExists = $true
$CSLOldModifiedTime = (Get-Item $CSLFile).LastWriteTime
}
"base_path:" + $ImagesPath + "\" > $CSLFile
"word_list_version:2" >> $CSLFile
"date_created:" + (get-date -Format G) >> $CSLFile
if(Test-Path -Path $CSLFile -PathType Leaf){
if ($CSLOldFileExists -eq $false) {
"`n Reference to the symbols list was created. The csl file ($CSLFile) was created."
"`n It can be removed by deleting the directory: $ListDir"
}
else {
$CSLNewModifiedTime = (Get-Item $CSLFile).LastWriteTime
if ($CSLNewModifiedTime -gt $CSLOldModifiedTime) {
"`n Reference to the symbols list was updated. The csl file ($CSLFile) was updated."
"`n It can be removed by deleting the directory: $ListDir"
}
else {
throw("The csl file ($CSLFile) could not be updated.")
}
}
}
else {
throw("The csl file ($CSLFile) could not be created.")
}
- Copy this script into a file with extension “ps1” such as cs-install-list.ps1;
- Run it from Windows PowerShell.
Getting version information
Use this script to get information about the version of the Commtap Symboliser installed and the latest version available. NOTE: this script does not check what updates your license allows you to have: this will be incorporated into later versions of the script.
<#
.SYNOPSIS
Provides information about the installed and currently available versions
of the Commtap Symboliser for PowerPoint.
.DESCRIPTION
This shows information about whether or not their is a newer version of the
Commtap Symboliser for PowerPoint available.
Newer versions of this script will:
- check what versions are available to download for a particular license
key;
- include information about Office and Windows version compatibility.
#>
$UpdateInfo = @{}
$status = ""
if((Test-Path -Path hklm:SOFTWARE\WOW6432Node\Commtap\CommtapSymboliser -PathType Any)){
$UpdateInfo."InstalledVersion" = ((Get-ItemProperty -Path hklm:SOFTWARE\WOW6432Node\Commtap\CommtapSymboliser -Name "installed_version").installed_version)/1000
$UpdateInfo."CurrentVersion" = (Invoke-WebRequest https://license.commtap.org/download.php/?q=symboliser-current-version).Content
if ($UpdateInfo."CurrentVersion" -gt $UpdateInfo."InstalledVersion") {
$UpdateInfo."UpdateAvailable" = $true
$status = "Update is available. "
}
else {
$UpdateInfo."UpdateAvailable" = $false
$status = "Latest version installed. "
}
}
else {
$UpdateInfo."InstalledVersion" = 0
$status = "Not installed. "
}
$UpdateInfo."Status" = $Status
return $UpdateInfo