A. Deployment guide

This chapter describes how to deploy think-cell in a larger organization. If you want to install a personal copy of think-cell on your computer, please refer to 2. Installation and update.

A.1 Considerations before installation

Most aspects of deploying think-cell are the same on both supported platforms (Windows or macOS). If there is some variation in detail, this is mentioned directly in the text. The mechanics of the initial installation and the distribution mechanism of configuration settings differ more substantially and are described in separate sections. If you only administer think-cell on Windows, feel free to skip the installation section for macOS, and vice versa.

A.1.1 Workstation prerequisites

On Windows, think-cell works with Microsoft Office 2010, 2013, 2016, 2019, 2021, or 2024 for Windows, with at least PowerPoint and Excel installed. think-cell also works with the fully installed versions and Click-to-Run versions of the desktop Office apps in Office 365.

On Mac, think-cell works with Microsoft Office 2016 (version 16.9 or later), 2019, 2021, or 2024 for Mac and macOS High Sierra (10.13) or later. think-cell also works with the fully installed versions of the desktop Office apps in Office 365.

The following components must be installed:

  • Microsoft Office Excel
  • Microsoft Office PowerPoint
  • Visual Basic for Applications (from Office Shared Features)

The installation of think-cell requires less than 200 MB of disk space.

A.1.2 Language

think-cell’s user interface is available in English, Arabic, Chinese, French, German, Italian, Japanese, Korean, Portuguese, Russian and Spanish. During the installation, think-cell uses the language corresponding to the regional settings of the operating system. After installation, think-cell uses the same language as in the menus and dialogs of the installation of Microsoft Office.

All supported languages are included in the same, unified installation package. If a language is not yet supported by think-cell, English is used. It is not possible to alter the automatic language selection behaviour.

A.1.3 Automatic updates

think-cell tightly integrates with PowerPoint and Excel to offer its streamlined user interface and wealth of functionality. Due to the tight integration, it is not possible to guarantee compatibility with unknown future changes to Microsoft Office. Therefore:

  1. Major version updates, i.e., switching from PowerPoint 2013 to 2016 or from 2016 to a future version, will always require the most recent think-cell version.
  2. For Click-to-Run editions of Office, which includes Office 365, most updates will require a think-cell update (also see A.1.4 Differences between Office 365 channels).
  3. Security updates for MSI-based editions of Microsoft Office on Windows will usually not require a think-cell update. However, this cannot be guaranteed and occasionally a security update for Microsoft Office will require a think-cell update for compatibility.

think-cell has built-in automatic update support. In this way, we ensure compatibility with any Microsoft update and provide new features. When PowerPoint or Excel are started, the software checks for a new version. If there is one, the software attempts to install the update.

If available, think-cell uses the Microsoft Background Intelligent Transfer Service (BITS) to download updates on Windows. BITS automatically frees bandwidth when the user needs it, and also recovers gracefully from network interruptions common in mobile computing environments. Each update is approximately 95 MB in size.

All files that are executed and installed by the automatic update are digitally signed by think-cell. The integrity of the update is verified against a self-signed certificate that is included in the version of think-cell currently installed.

Automatic updates always keep the installation location and update think-cell in place.

A.1.4 Differences between Office 365 channels

For the Microsoft 365 licensing plans including Office 365, Microsoft offers various so-called update channels which deploy updates with varying frequency and delay. think-cell supports all update channels of Office 365. We check for Microsoft updates to all channels every night, and if there is an update that conflicts with think-cell, we immediately start working on a corresponding think-cell update. In the following it is assumed that think-cell’s automatic updates are enabled.

Here is an overview of the quality of service you can expect from think-cell when using each one of the channels:

Semi-Annual Enterprise Channel
(Default in Microsoft 365 Enterprise (Office 365 ProPlus) for tenants created before June 9, 2020) and

Monthly Enterprise Channel
and

Current Channel
(Default in Microsoft 365 Business, Home, Personal; default in Microsoft 365 Enterprise for new tenants created on or after June 9, 2020): We initiate an automatic think-cell update before Microsoft’s update, so no outage of think-cell should occur.

Semi-Annual Enterprise Channel (Preview)
and

Current Channel (Preview):
The think-cell update is available for download, but we do not always trigger a timely automatic update. When a conflict occurs and you have error reporting enabled, the update will be installed automatically. If you have error reporting disabled and support email not redirected (see Troubleshooting and critical errors), and the user selects Request Support in the error dialog, they will get an automatic email response even outside of our business hours including a link to the update download.

Beta Channel
We make the think-cell update available as soon as possible after the Microsoft update, but outages may occur. Once the think-cell update is ready, the distribution mechanism is the same as for Preview channels.

A.2 Initial installation

A.2.1 Configuration parameters

think-cell can be configured in a variety of ways to fit with your particular needs and environment. Below is a table of think-cell configuration parameters available for both Windows and Mac installations. On Windows, some additional configuration options for the A.2.2.4 Ribbon are available. For details on how to use a parameter with:

Deploying or changing configuration parameters via the Windows Installer command line is only possible when (re-)installing think-cell. Parameters can be deployed and changed using one of the other three methods also for an existing installation.

For details on the usage and effects of each parameter, see the sections linked in the last column of the table.

For macOS, all keys listed below have to be prefixed with com.think-cell.settings. and target the com.microsoft.office domain. For example, the full licensekey key is com.think-cell.settings.licensekey. If the key listed in the table is of the form [parent key].[subkey], e.g. reports.enabled, then the parent key is of type dict and the subkey is of the type given. For example, reports.enabled is listed as type boolean, which is the type of the enabled key contained in the value of the key of type dict whose full name is com.think-cell.settings.reports.

Windows installer command line

Values

Group policy

macOS preference key

Type

Values

More information

LICENSEKEY

="ABCDE-..."

License Key

licensekey

string

ABCDE-...

A.2.4 First start

UPDATES

=0, =1

Automatic Updates

updates.enabled

boolean

false, true

A.3.1 Controlling think-cell updates manually

UPDATESURL

="https://..."

updates.url

string

https://...

A.3.2 Hosting think-cell updates on your own server

NOFIRSTSTART

=0, =1

Suppress First Start Actions

nofirststart

boolean

false, true

A.2.4 First start

REPORTS

=0, =1

Error Reporting

reports.enabled

boolean

false, true

A.3.5 Error reporting

SUPPORTEMAIL

="desk@..."

Support

support.email

string

desk@...

Troubleshooting and critical errors

DEFAULTSTYLE

Absolute path to style file or relative to TARGETDIR\styles\

Default Style File

defaultstyle

string

Absolute path to style file or relative to /Library/Application Support/Microsoft/think-cell/styles/

C.3 Deploying think-cell styles

STOCKIMAGESDISABLECANTO, STOCKIMAGESDISABLEGETTY, STOCKIMAGESDISABLEPEXELS, STOCKIMAGESDISABLEUNSPLASH

=0, =1

Stock Images: Other Providers

stockimages.

DisableCanto
DisableGetty
DisablePexels
DisableUnsplash

boolean

false, true

A.4 Configure stock image providers

STOCKIMAGESDISABLEBRANDFOLDER

=0, =1

Stock Images: Brandfolder

stockimages.

DisableBrandfolder

boolean

false, true

STOCKIMAGESBRANDFOLDERAPIKEY

="ABCDE..."

stockimages.

BrandfolderAPIKey

string

ABCDE...

STOCKIMAGESHIDESINGLEBRANDFOLDER

=0, =1

stockimages.

HideSingleBrandfolder

boolean

false, true

STOCKIMAGESHIDEBRANDFOLDERCOLLECTIONS, STOCKIMAGESHIDEBRANDFOLDERSECTIONS

=0, =1, =2

stockimages.

HideBrandfolderCollections
HideBrandfolderSections

integer

0, 1, 2

A.2.2 Installation on Windows

The think-cell installation files, setup_*.msi and setup_*.exe, understand the same parameters as Windows’ msiexec command, though not all combinations are recommended and supported. Note that there is only one installer and think-cell will use 32-bit or 64-bit as needed. Use the setup_*.exe if users shall install think-cell by double-clicking the setup file.

A.2.2.1 Installation scope

think-cell can be installed per-machine or per-user. If the installing user has admin rights or can elevate via Windows User Account Control (UAC), the default is to use the per-machine context. However, if a user is allowed to install software but does not have admin rights and cannot elevate via UAC, the per-user context is used.

Based on standard behavior of the Windows Installer mechanism it is possible for different think-cell versions to be installed in parallel if they are installed in different contexts (e.g., different versions installed per-user for different user accounts, or a different version installed per-user and per-machine, respectively). If more than one installation exists, it is always the per-user installation of a given user account that is executed. Any other installations (including a per-machine installation) are ignored. This is true even if the per-user installation is an older version than a parallel per-machine installation.

Use the following approaches for scripted or command prompt installations, or if you need to force certain installation options:

Per-machine

setup_*.msi /qn TARGETDIR="<absolute path>"

  • The executing account needs full administrator permissions, e.g., by using a script started by remote maintenance software, or by starting the installer from a command prompt which was launched with "Run as administrator". The installation will abort if the account has insufficient privileges.
  • Omit the ALLUSERS parameter.
  • The other parameters are optional:

    • The /qn parameter suppresses the Windows Installer user interface.
    • The default destination directory is

      %PROGRAMFILES%\think-cell

      on 32-bit Windows systems and

      %PROGRAMFILES(X86)%\think-cell

      on 64-bit Windows systems. If you set a different path with the TARGETDIR parameter make sure the destination is readable by all users on the machine.

  • If you prefer you may also use the setup_*.exe as follows:

    setup_*.exe ALLUSERS=1

    The other parameters work the same as for the setup_*.msi.

Automatic privilege elevation by Windows User Account Control (UAC)

setup_*.exe /qb

  • Omit the ALLUSERS parameter. You will get a per-machine installation if the user account can elevate to administration permissions, otherwise the installer falls back to per-user.
  • The other parameters are optional:

    • With Windows 7, /qn may be used to completely suppress the installer’s user interface. /qb displays a progress bar and /qb! removes its Cancel button. With Windows 8 and later versions only /qb is recommended as /qn may silently abort the installation or unexpectedly install per-user even though the account may elevate permissions. (This is due to Microsoft’s changes to UAC in Windows 8 and depends on the account’s specific UAC settings.)
    • For the default destination directory of per-machine installation see above. For per-user installation the default is

      %LOCALAPPDATA%\think-cell

      It is recommended not to set a different path with the TARGETDIR parameter, but if you do, make sure it has the appropriate permissions and ownership for the respective context.

Force per-user

setup_*.exe /qn ALLUSERS=""

  • ALLUSERS="" forces a per-user installation even if the user account may elevate permissions by UAC.
  • Execute the installer for each user account.
  • The other parameters are optional:

    • /qn may be used to completely suppress the installer’s user interface. /qb displays a progress bar and /qb! removes its Cancel button.
    • The default destination directory is

      %LOCALAPPDATA%\think-cell

      It is recommended not to set a different path with the TARGETDIR parameter, but if you do, make sure the directory has the appropriate permissions and ownership for the current user account.

A.2.2.2 Installed files

The installation directory contains the executables, libraries and other files required for think-cell. Noteworthy are the following directories and files:

  • admin-policy-templates (templates necessary for managing settings via Group Policy)
  • ppttc (schema and samples for automation using JSON)
  • styles (style files and additional examples for customization)
  • xml-schemas (schema for think-cell style files)
  • NOTICE.txt (obligatory notices for included components)

The think-cell installation does not write to directories other than the chosen installation directory.

While using think-cell additional files are written to the following directories:

C:\Users\[user]\AppData\Roaming\think-cell

C:\Users\[user]\AppData\Local\think-cell

Registry entries

To interact with Microsoft PowerPoint and Microsoft Excel, the installation of think-cell creates some new keys in the following sections of the Windows registry. Depending on whether you have a regular installation or a single-user-installation, the keys are created in the HKEY_LOCAL_MACHINE or in the HKEY_CURRENT_USER section:

\Software\Classes\CLSID\ >
{3EAB3858-A0E0-4A3B-A405-F4D525E85265}

\Software\Classes\CLSID\ >
{D52B1FA2-1EF8-4035-9DA6-8AD0F40267A1}

\Software\Classes\thinkcell.addin

\Software\Classes\thinkcell.addin.1

\Software\Microsoft\Office\ >
PowerPoint\Addins\thinkcell.addin

\Software\Microsoft\Office\ >
Excel\Addins\thinkcell.addin

In 64-bit versions of Windows the following additional keys are created:

\Software\Classes\Wow6432Node\CLSID\ >
{3EAB3858-A0E0-4A3B-A405-F4D525E85265}

\Software\Classes\Wow6432Node\CLSID\ >
{D52B1FA2-1EF8-4035-9DA6-8AD0F40267A1}

\Software\Wow6432Node\Microsoft\Office\ >
PowerPoint\Addins\thinkcell.addin

\Software\Wow6432Node\Microsoft\Office\ >
Excel\Addins\thinkcell.addin

The license key and the settings for online quality assurance and automatic updates are saved in the following section of the Windows registry:

Software\Classes\Software\think-cell

If group policies based on think-cell.adm/x (see A.2.2.3 Group policies) are used in your network, think-cell may also use:

HKEY_LOCAL_MACHINE\Software\Policies\ >
think-cell

HKEY_CURRENT_USER\Software\Policies\ >
think-cell

think-cell changes no other sections of the Windows registry.

A.2.2.3 Group policies

think-cell supports Windows’ group policies to centrally control think-cell’s behavior for a group of users or on a group of machines. To use group policies, you need to create a group policy object and link it to a site, domain or organizational unit using the Group Policy Management Console.

The following explanation requires an understanding and working knowledge of group policy concepts and administration. For general information on Windows group policy concepts and details of their usage and update mechanisms refer to the contents of the online help of the Group Policy Management Console.

think-cell’s specific configuration options are described in the think-cell.admx administrative template file, which is located in think-cell’s installation directory in the subdirectory admin-policy-templates. To make use of the new options copy think-cell.admx and en-US\think-cell.adml from admin-policy-templates to %SYSTEMROOT%\PolicyDefinitions and %SYSTEMROOT%\PolicyDefinitions\en-US respectively.

A new node think-cell is added to the node Administrative Templates in the following two places: the think-cell settings configured under Computer Configuration determine registry entries at

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\ >
think-cell

and the think-cell settings configured under User Configuration determine registry entries at

HKEY_CURRENT_USER\SOFTWARE\Policies\ >
think-cell

If settings are enabled at both places, those under Computer Configuration take precedence.

The items of the node think-cell show the available settings that can be controlled with group policies. Each item has a description with the available values for this item.

Using Group Policies to manage access on a terminal server

You can use group policies to activate or deactivate think-cell for a group of individual users. For instance, if you deploy think-cell on a terminal server you need to make sure that only the licensed users have access to think-cell. When used in the following way, group policies offer a convenient method to do so:

  1. Set up one group policy object which disables think-cell completely and link it to your domain. Use the Product Access Control setting of the administrative template think-cell with the appropriate value.
  2. Add another group policy object which activates the software for the licensed users. This should also be linked to your domain and be applied after the disabling one. Because group policy objects are applied in reverse order the enabling object should be further up in the list in Group Policy Management Console.
  3. In the section Security Filtering of the Group Policy Management Console restrict access to the enabling group policy object explicitly to the licensed users of think-cell.
Using Group Policies to distribute the license key

Another convenient use for group policies is the centralized management and distribution of the think-cell license key to the think-cell users in your organization. The license key is controlled via the License Key policy.

A.2.2.4 Ribbon

The default position for the think-cell group in PowerPoint is in the Insert tab (TabInsert), after the Insert Illustrations group (GroupInsertIllustrations); the default position in Excel is after the Insert Excel Charts group (GroupInsertChartsExcel) in the Insert tab.

Detailed information about customizing the Office ribbon is available from:

http://www.think-cell.com/ribbon

The following properties may be specified during installation or set via the Group Policy PowerPoint Ribbon XML (see A.2.2.3 Group policies) to customize the think-cell group within PowerPoint:

RIBBONPPTABINSERT
Specify XML attributes for the tab element containing the think-cell group.

RIBBONPPGROUPINSERT
Specify XML attributes for the think-cell group element.

RIBBONPPXMLNS
Specify additional XML namespace attributes for the customUI element.

RIBBONPPDONOTTOUCHBUILTINRIBBON
If set to =1, only place a single "think-cell" group, and do not place additional think-cell Ribbon elements on built-in tabs (e.g. the "think-cell Data" group on the Insert tab).

The think-cell group in Excel can be similarly customized using the RIBBONXLTABINSERT, RIBBONXLGROUPINSERT, RIBBONXLXMLNS, and RIBBONXLDONOTTOUCHBUILTINRIBBON properties, or the Excel Ribbon XML group policy.

Note: All of these parameters apply to the setup.msi as well as the setup.exe.

If no id, idMso or idQ attribute is specified using the RIBBONPPTABINSERT property then the think-cell group will be placed in the Insert tab. Similarly, if no id or idQ attribute is specified using the RIBBONPPGROUPINSERT property then a unique local id for the think-cell group will be automatically generated. Additionally, if no label is specified using the RIBBONPPGROUPINSERT property then the label think-cell will be used.

Adding the following option to the setup command line, for example, will place the think-cell group in a new, user-defined tab, positioned after the built-in Home tab:

RIBBONPPTABINSERT="id=""TabNew"" label=
""My New Tab"" insertAfterMso=""TabHome"""

Note: Any quote characters in the XML snippets must be double-quoted when specifying the properties on the setup command line.

Alternatively, adding the following options to the setup command line will place the think-cell group in the built-in Home tab after the Font group and label the group:

RIBBONPPTABINSERT="idMso=""TabHome"""

RIBBONPPGROUPINSERT="insertAfterMso=
""GroupFont"" label=""think-cell"""

The idQ attribute can be used to specify qualified identifiers for both the think-cell group and tab. Any namespaces required for the qualified identifiers can be specified using the RIBBONPPXMLNS property.

For example, adding the following two options to the setup command line will place the think-cell group in a user-defined tab TabUser, qualified using the namespace http://example.com/ribbon, and positioned before the Insert tab:

RIBBONPPXMLNS="xmlns:ribbon=
""http://example.com/ribbon"""

RIBBONPPTABINSERT="idQ=""ribbon:TabUser""
label=""My User Tab""
insertBeforeMso=""TabInsert"""

Qualified identifiers can be useful when several add-ins or templates wish to customize the PowerPoint ribbon. If several add-ins, for example, specify a tab using the same qualified identifier then a single user-defined tab will be created and each of the add-ins can position groups within this common user-defined tab. Specifying a qualified identifier for the think-cell group lets other add-ins or templates position groups relative to the group. Similarly, the think-cell group can use qualified identifiers to position itself relative to the groups of other add-ins or templates. For example, the following options specify a qualified identifier for the think-cell group and positions it relative to a user-defined group:

RIBBONPPXMLNS="xmlns:ribbon=
""http://example.com/ribbon""
xmlns:special=
""http://example.com/special"""

RIBBONPPGROUPINSERT="
idQ=""ribbon:GroupThinkCell""
insertAfterQ=""special:GroupSpecial"""

It is important to note that the order in which add-ins or templates are loaded may influence the customization of the PowerPoint ribbon. If, in the example above, the add-in that creates the special:GroupSpecial group is loaded after the think-cell add-in then positioning relative to the special:GroupSpecial will have no effect. The order of loading cannot always be controlled and it is recommended that pairs of user-defined groups requiring relative positioning should both position themselves relative to the other. This should ensure that whichever group is loaded last will position itself correctly relative to the other. In the above example, the XML code for the special:GroupSpecial group should contain an insertBeforeQ attribute that references the think-cell group’s qualified identifier.

A.2.3 Installation on macOS

The think-cell installation file, setup_*.pkg can be used interactively or the installation can be scripted using the standard installer command. Only the domain LocalSystem can be used as a target, i.e., think-cell is always available to all users on the machine.

Administrative settings and configuration parameters are stored in the com.microsoft.office preference domain. See A.2.1 Configuration parameters for an overview of the available settings and their key and type.

For example, you might want to deploy your company's license key to every think-cell installation by adding a line like the following to the same script that calls installer to install the setup_*.pkg file:

sudo defaults write /Library/Preferences/com.microsoft.office com.think-cell.settings.licensekey "ABCDE-..."

Note: When using defaults to modify the value of a subkey of a dict-valued key, for example the value of the enabled subkey of the com.think-cell.settings.reports key, the subkey needs to be specified as part of a list of key -type value triples following -dict-add as in the following example:

sudo defaults write /Library/Preferences/com.microsoft.office com.think-cell.settings.reports -dict-add enabled -bool true

Consult the man page for defaults for further information.

Note: In previous versions, think-cell's configuration settings were stored in a config.plist file in think-cell's installation directory. This way of deploying settings is deprecated and may be removed in a future version. If your are deploying configuration settings by writing to the config.plist file, we urge you to move these settings into the com.microsoft.office preference domain to ensure compatibility with future versions of think-cell. Refer to A.2.1 Configuration parameters for key paths and types.

A.2.3.1 Installed files

think-cell is installed in the following directory:

/Library/Application Support/Microsoft/think-cell

The following items are required for think-cell and are created in the installation directory:

  • NOTICE.txt (obligatory notices for included components)
  • ppttc (schema and samples for automation using JSON)
  • styles (style files and additional examples for customization)
  • tcaddin.plugin (the add-in running in PowerPoint and Excel)
  • xml-schemas (schema for think-cell style files)

A.2.3.2 Managed deployment on macOS

You can also use a device management solution such as Jamf Pro or Microsoft Intune to deploy and configure think-cell.

To deploy the configuration settings, the easiest way is to author a .plist file containing the relevant key-value pairs, which you upload to your management solution and target to the com.microsoft.office preference domain. See the documentation of Jamf and Intune for detailed instructions, for example.

Here is an example of a .plist file configuring some of the available settings. For a full list see A.2.1 Configuration parameters.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.think-cell.settings.licensekey</key>
	<string>AAAAA-BBBBB-CCCCC-DDDDD-EEEEE</string>
	<key>com.think-cell.settings.reports</key>
	<dict>
		<key>enabled</key>
		<true/>
	</dict>
	<key>com.think-cell.settings.stockimages</key>
	<dict>
		<key>DisableBrandfolder</key>
		<true/>
		<key>DisableCanto</key>
		<true/>
		<key>DisableGetty</key>
		<true/>
	</dict>
</dict>
</plist>

Note: When using Intune, you need to edit the .plist file before uploading so that it only contains the key-value-pairs, without any surrounding <?xml>, <!DOCTYPE>, <plist>, and (outermost) <dict> tags. The Intune version of the example above would thus look like this:

<key>com.think-cell.settings.licensekey</key>
<string>AAAAA-BBBBB-CCCCC-DDDDD-EEEEE</string>
<key>com.think-cell.settings.reports</key>
<dict>
	<key>enabled</key>
	<true/>
</dict>
<key>com.think-cell.settings.stockimages</key>
<dict>
	<key>DisableBrandfolder</key>
	<true/>
	<key>DisableCanto</key>
	<true/>
	<key>DisableGetty</key>
	<true/>
</dict>

A.2.4 First start

After think-cell has been installed and the user starts PowerPoint for the first time, a dialog to enter the license key is shown.

With the licensekey configuration parameter a license key can be specified during installation or centrally deployed beforehand (see A.2.1 Configuration parameters).

Also on the first start, the ribbon is switched to the Insert tab, where the think-cell group is located. A web page with a tutorial is also opened. Both actions can be suppressed by the nofirststart configuration parameter (see A.2.1 Configuration parameters).

A.2.5 Browser extension

think-cell comes with a browser extension to enable its 23. Tableau data functionality, and to import 18. Images from the web into PowerPoint. The extension is available for Google Chrome, Microsoft Edge, and Mozilla Firefox.

The extension is automatically installed into Chrome and Edge when think-cell is installed. However, extensions installed in this way need to be enabled manually by the user (see 2.2.4 Installing the browser extension).

To avoid this need for user interaction, we recommend explicitly managing the installation of the think-cell browser extension using the management policies of the supported browsers. In particular, we recommend force-installing the extension along with think-cell for think-cell users, and blocking the installation for all others, especially if think-cell is installed per-machine on a machine not all users of which have access to think-cell, like a terminal server (compare Using Group Policies to manage access on a terminal server).

The following table summarizes the relevant information:

A.3 Ongoing maintenance

A.3.1 Controlling think-cell updates manually

If you want to control think-cell updates manually, you must disable any automatic updates by Microsoft for PowerPoint and Excel. Deployment of Microsoft’s updates must be controlled by you. If automatic Office updates by Microsoft are enabled, you cannot disable think-cell updates. think-cell will download and install updates in that case.

If you disabled automatic Office updates by Microsoft or directed the Office updates to your own server, you can disable think-cell’s updates via the UPDATES/updates.enabled configuration parameter (see A.2.1 Configuration parameters).

In this case, think-cell does not check whether an update is available when starting PowerPoint and Excel. You may also contact us and request to disable automatic updates via a setting on our server. In that case, the update check still occurs, but the reply always indicates that no update is available.

Note: As a result of an error, think-cell may inform the user that an update with a fix is already available and offer it on a web page (see A.3.5 Error reporting).

If think-cell’s automatic updates are disabled, you need to manually check think-cell compatibility with every update to PowerPoint and Excel. For an effective check, you need to

  1. start PowerPoint,
  2. insert a chart,
  3. wait for the internal datasheet to open and change a number,
  4. confirm that the change is reflected in the chart.

If any of those steps fail, you need to take action. The current version of think-cell available from our website will usually be compatible with the Microsoft update you wish to deploy. Therefore, please repeat the test with the current think-cell version and plan for a deployment before or together with the Microsoft update.

Testing think-cell with every Microsoft update is not optional. It is a necessary part of your support for the think-cell users in your organization. Testing is not necessary if think-cell’s automatic updates are enabled.

In any case, you should regularly deploy think-cell updates so that your users can benefit from the latest improvements. We recommend an update at least every few months.

A.3.2 Hosting think-cell updates on your own server

Updates are usually hosted on think-cell’s web server, but you have the option to host updates within your own intranet. To do so, you need a web server such as Apache or Microsoft Internet Information Server (IIS) that all think-cell users within your organization can access. The following files must be placed on the web server hosting your updates:

  • An XML text file, typically called update.xml, that controls the update process. See below for a description of the update XML file format.
  • One or more setup_think-cell_<version>.exe update files, supplied by think-cell.

After placing the necessary files on the web server, use the UPDATESURL/updates.url configuration parameter specifying the location of the update XML file (see A.2.1 Configuration parameters), e.g.

https://example.com/update.xml

The update XML file must contain a list of scenarios, with each scenario consisting of a set of conditions and the corresponding URL of a setup file. The first scenario whose conditions are met determines the file that the client will download and install. By applying conditions such as a list of machine or user names, different users can receive different updates. For example, new program versions can first be distributed to a small group of pilot users before they are rolled out in the whole organization.

Windows: The following example shows a complex update XML file using WQL queries:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<root> 
  <CUpdateInfo id="1"> 
    <m_vecupdscen length="2"> 
      <!-- list of 2 different update scenarios --> 
      <!-- First scenario: the group of pilot 
           users. --> 
      <!-- This scenario is evaluated first, 
           and if it is executed, the 
           second scenario is skipped. --> 
      <elem> 
        <!-- Update file of this scenario: 
             The pilot group receives 
             think-cell build 17950 --> 
        <m_bstrFile>https://example.com/setup_17950.exe 
        </m_bstrFile> 
        <!-- List of 2 conditions that must 
             _all_ be met to install the 
             file --> 
        <m_vecupdcond length="2"> 
          <elem> 
            <!-- WQL query that an earlier build 
                 of think-cell is installed. The 
               query searches the local WQL 
                 database (not the network). 
                 Thus it will either return one 
                 product record, if an older 
                 product is installed, or none 
                 otherwise. --> 
            <m_bstrQuery>select * from 
              Win32_Product where 
              Name='think-cell' and 
              Version<'1.17.950.0' 
            </m_bstrQuery> 
            <!-- The number of returned records 
                 is now numerically compared: 
                 -2 stands for less than, 
                 -1 for less or equal; 
                 0 for equal; 
                 1 for greater or equal; 
                 2 for greater than --> 
            <m_eupdcondop val="0"/> 
            <!-- Compare to numerical value 1 --> 
            <m_nCount val="1"/> 
          </elem> 
          <elem> 
            <!-- WQL query that the computer system is 
                 named ANNA, TOM or FRANK (the group 
                 of pilot users). Again, the query is 
                 executed locally, returning either one 
                 computer system (the one the query is 
                 running on) or none. --> 
            <m_bstrQuery>select * from 
              Win32_ComputerSystem where 
              Name='ANNA' or Name='TOM' 
              or Name='FRANK'</m_bstrQuery> 
            <!-- number of returned records equal to 1 --> 
            <m_eupdcondop val="0"/> 
            <m_nCount val="1"/> 
          </elem> 
        </m_vecupdcond> 
      </elem> 
      <elem><!-- Second scenario: all other users. --> 
        <!-- All other users receive think-cell 
             build 17883. --> 
        <m_bstrFile>https://example.com/setup_17883.exe 
        </m_bstrFile> 
        <!-- List of 1 condition that must be met to 
             install the file --> 
        <m_vecupdcond length="1"> 
          <elem> 
            <m_bstrQuery>select * from 
              Win32_Product where 
              Name='think-cell' and 
              Version<'1.17.883.0'</m_bstrQuery> 
            <!-- number of returned records equal to 1 --> 
            <m_eupdcondop val="0"/> 
            <m_nCount val="1"/> 
          </elem> 
        </m_vecupdcond> 
      </elem> 
    </m_vecupdscen> 
  </CUpdateInfo> 
</root>

Conditions within the file are written in the Windows Management Instrumentation Query Language (WQL), which gives access to all relevant system parameters. To learn more about WQL, go to:

http://www.think-cell.com/wql

If you want to control the update by comparing the version number, follow this example:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<root> 
  <CUpdateInfo id="1"> 
    <m_vecupdscen length="1"> 
      <elem> 
        <m_bstrFile val="https://example.com/setup_26388.exe"/> 
        <m_vecupdcond length="2"> 
          <elem> 
            <version/> 
            <m_eupdcondop val="1"/> 
            <m_nCount val="26000"/> 
          </elem> 
          <elem> 
            <version/> 
            <m_eupdcondop val="-2"/> 
            <m_nCount val="26388"/> 
           </elem> 
        </m_vecupdcond> 
      </elem> 
    </m_vecupdscen> 
  </CUpdateInfo> 
</root>

The update conditions are met when the current build number is greater or equal (val="1") to 26000 and less than (val="-2") 26388.

A.3.3 Notification about license key expiration

think-cell requires a license key and can be used up to and on the expiration date of the license key.

The software will notify the user about the upcoming expiration on every start of PowerPoint or Excel if the expiration date is less than 14 days away.

The license key dialog is used to notify the user. If the license key has not yet expired, the message “The license key of this think-cell product will expire soon. You should enter a new license key:” is shown together with the expiration date. The user has the following choices:

  • Enter a new license key and click OK.
  • Click Cancel to dismiss the dialog.
  • Click Uninstall to uninstall think-cell.

If the expiration date has already passed, the message “The license key of this think-cell product has expired. Please enter a new license key:” is shown, but clicking OK is only possible after a valid license key has been entered. If the dialog is dismissed using Cancel think-cell remains deactivated.

To prevent the license expiration dialog from being shown please make sure to order and deploy a new license key more than 14 days before the expiration date. A new license key is always valid immediately and not only after the expiration date of the old license key. Therefore you should deploy the new license key as soon as it is available.

A.3.4 Information sent over the internet

think-cell sends information over the internet sometimes, for example when using the automatic update or displaying a list of new features when a new version is started for the first time. Some information about the current installation is sent to enable an appropriate response from our servers.

For each request, the following information is sent:

  • the program build (a five-digit number; can also be found in the About dialog)
  • the license key
  • an anonymous Globally Unique Identifier (GUID), which is used to correlate multiple requests. The GUID is created when using think-cell for the first time and stored together with the user’s settings. It is a random string with no connection to the machine, user or document current at the time of creation. Using the GUID, it is only possible to determine whether two requests came from the same or from different users.
  • date and time
  • version numbers of the Microsoft Windows and Microsoft Office installations
  • cpuinfo (32 bit or 64 bit, MMX & AVX support)
  • update level (disabled/enabled/forced)

All communication with our servers is secured with state-of-the-art techniques and encryption (HTTPS).

If error reports are enabled, additional information is sent as described in the next section A.3.5 Error reporting.

A.3.5 Error reporting

At think-cell, we are committed to stability and robustness as key factors for the professional use of our software. When an error condition arises while you are using think-cell, the software automatically generates a report that helps us to understand the problem and fix it in the next release.

An updated version of think-cell that addresses the reported error may already be available at the time of the report. In this case, the update is installed automatically (see A.1.3 Automatic updates for details on the download and installation of updates). If think-cell updates are controlled manually (see A.3.1 Controlling think-cell updates manually), the update is offered for download in a browser window and can be manually installed.

An automatically created report contains the following information:

  • the basic information listed in A.3.4 Information sent over the internet,
  • an error code from the operating system, from PowerPoint or Excel, or from think-cell itself,
  • the location in our source code (file name and line number) where the error occurred,
  • a Microsoft Minidump, which is basically a stack trace along with environment information such as operating system version and loaded modules. Microsoft uses the same Minidump when they send error reports,

The error report is sent via HTTPS to the think-cell server. Of all the information transmitted, only the Minidump, essentially memory content, could potentially contain actual slide content fragments. But in its operation, think-cell never stores actual slide content. Storing text or images is completely left to PowerPoint. Therefore it is very unlikely that the Minidump of the memory used by think-cell contains any sensitive information.

Automatic error reporting can be enabled or disabled via a configuration parameter (see A.2.1 Configuration parameters).

Troubleshooting and critical errors

In case of critical errors the user is asked whether he or she would like to file a support request.

think-cell critical error support request dialog.

These support requests can also be sent manually (see 2.4 Troubleshooting). It is possible to change the default email address for support requests via a configuration parameter (see A.2.1 Configuration parameters).

A.4 Configure stock image providers

A.4.1 Restrict image providers

You can disable stock image providers that are not used in your company via the respective configuration parameters. If all providers are disabled, Stock Image is removed from the Elements menu.

When using Group Policy on Windows (see A.2.2.3 Group policies), go to the policy Stock Images: Other Providers. You can set the settings, Disable Canto, Disable Getty Images, Disable Pexels, and Disable Unsplash to Yes to disable that image provider or to No to leave it enabled, which is the default. You can also disable Brandfolder by setting the Stock Images: Brandfolder policy to Disabled as a whole.

When using command line parameters on Windows (see A.2.2 Installation on Windows), you can add STOCKIMAGESDISABLEBRANDFOLDER=1, STOCKIMAGESDISABLECANTO=1, STOCKIMAGESDISABLEGETTY=1, STOCKIMAGESDISABLEPEXELS=1, or STOCKIMAGESDISABLEUNSPLASH=1 to the installation command line to disable that image provider.

When using defaults on Mac (see A.2.3 Installation on macOS), the following command will disable all image providers:

sudo defaults write /Library/Preferences/com.microsoft.office com.think-cell.settings.stockimages -dict-add DisableBrandfolder -bool true DisableCanto -bool true DisableGetty -bool true DisablePexels -bool true DisableUnsplash -bool true

When uploading a .plist file to a device management solution (see A.2.3.2 Managed deployment on macOS), including the following snippet will disable all image providers:

<key>stockimages</key>
<dict>
	<key>DisableBrandfolder</key>
	<true/>
	<key>DisableCanto</key>
	<true/>
	<key>DisableGetty</key>
	<true/>
	<key>DisablePexels</key>
	<true/>
	<key>DisableUnsplash</key>
	<true/>
</dict>

To leave a specific image provider enabled, change the true to false for that provider.

A.4.2 Brandfolder API key

When using the image provider Brandfolder, authentication is done via an API key that you need to distribute to think-cell users via a configuration parameter. To retrieve your API key, log in to your Brandfolder profile, navigate to Integrations and find your API key under API Keys. It is best to copy and paste this long string.

When using Group Policy on Windows (see A.2.2.3 Group policies), go to the policy Stock Images: Brandfolder and set the value of Brandfolder API Key to the API key.

When using command line parameters on Windows (see A.2.2 Installation on Windows), add STOCKIMAGESBRANDFOLDERAPIKEY=ABCDE... to the installation command line after replacing ABCDE... with your API key.

When using defaults on Mac (see A.2.3 Installation on macOS), the following command will set the Brandfolder API key after replacing ABCDE... with your API key:

sudo defaults write /Library/Preferences/com.microsoft.office com.think-cell.settings.stockimages -dict-add BrandfolderAPIKey -string "ABCDE..."

When uploading a .plist file to a device management solution (see A.2.3.2 Managed deployment on macOS), including the following snippet will set the Brandfolder API key after replacing ABCDE... with your API key:

<key>stockimages</key>
<dict>
  <key>BrandfolderAPIKey</key>
  <string>ABCDE...</string>
</dict>

A.4.3 Brandfolder stock image dialog

When using the image provider Brandfolder, you can configure the stock image dialog further. You can enable an option that the folder drop-down is automatically hidden if you only have one folder. And for both the Brandfolder Collections and Brandfolder Sections drop-down lists you can choose between showing the drop-down, showing it without the "All" setting, and hiding it, implying "All".

When using Group Policy on Windows (see A.2.2.3 Group policies), go to the policy Stock Images: Brandfolder and set the respective options.

When using command line parameters on Windows (see A.2.2 Installation on Windows), add STOCKIMAGESHIDESINGLEBRANDFOLDER=1 to the installation command line to hide the drop-down list automatically if you only have one folder. Add STOCKIMAGESHIDEBRANDFOLDERCOLLECTIONS=0 to show the Brandfolder Collections drop-down list, =1 to show it but omit "All" and =2 to hide the drop-down list. The setting STOCKIMAGESHIDEBRANDFOLDERSECTIONS controls the Brandfolder Sections drop-down list in the same way.

When using defaults on Mac (see A.2.3 Installation on macOS), the following command can be used as a starting point. The value for HideSingleBrandfolder can be true or false and for both HideBrandfolderCollections and HideBrandfolderSections the following values can be used: 0 to show the drop-down list, 1 to show it but omit "All" and 2 to hide the drop-down list.

sudo defaults write /Library/Preferences/com.microsoft.office com.think-cell.settings.stockimages -dict-add HideSingleBrandfolder -bool false HideBrandfolderCollections -int 1 HideBrandfolderSections -int 2

When uploading a .plist file to a device management solution (see A.2.3.2 Managed deployment on macOS), including the following snippet will configure the same settings:

<key>stockimages</key>
<dict>
	<key>HideSingleBrandfolder</key>
	<false/>
	<key>HideBrandfolderCollections</key>
	<integer>1</integer>
	<key>HideBrandfolderSections</key>
	<integer>2</integer>
</dict>

Share