Learn how to install, update, and uninstall TeamViewer Host or TeamViewer Full in a mass deployment scenario on macOS. Please ensure you have a basic understanding and knowledge of command-line installations on macOS, as it will be required to complete this process.

This article applies to Corporate and Tensor license holders using version 15.x. or newer. Supported macOS versions: 10.14, 10.15, 11, 12, 13

Install the standard Host version of TeamViewer

Required installer:

  1. TeamViewer_Host.pkg: Download the file in the TeamViewer (Classic) Management Console under "Design & Deploy" by clicking "Download installer" and choosing "PKG (Host & Full Client for macOS)".
  2. Unzip the compressed file.

Steps:

Enter the following command into the terminal:

sudo installer -pkg "TeamViewer_Host.pkg" -target /

The parameter -target defines the path where you want your installation to be located.

Install the standard Host version of TeamViewer silently

Required installer:

  1. TeamViewer_Host.pkg: Download the file in the TeamViewer (Classic) Management Console under "Design & Deploy" by clicking "Download installer" and choosing "PKG (Host & Full Client for macOS)".
  2. Unzip the PKG.

Steps:

1) Create an XML file called (e.g.: choices.xml) and enter the following content:

<?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">
<array>
  <dict>
    <key>attributeSetting</key>
    <integer>1</integer>
    <key>choiceAttribute</key>
    <string>selected</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerhostSilentInstaller</string>
  </dict>
</array>
</plist>

2) (Optional) verify if your configuration will be applied correctly

  • Execute the following command:
installer -showChoicesAfterApplyingChangesXML newChoices.xml -pkg Install\ TeamViewer_Host.pkg -target /
  • This will result in an output that should look similar to this:
<?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">
<array>
  <dict> ... </dict>
  <dict> ... </dict> 
  <dict>
    <key>attributeSetting</key>
    <false/> 
    <key>choiceAttribute</key> 
    <string>visible</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerhostSilentInstaller</string>
  </dict>
  <dict> 
    <key>attributeSetting</key> 
    <true/>
    <key>choiceAttribute</key>
    <string>enabled</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerhostSilentInstaller</string>
  </dict>
  <dict>
    <key>attributeSetting</key>
    <integer>1</integer>
    <key>choiceAttribute</key>
    <string>selected</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerhostSilentInstaller</string>
  </dict>
</array>
</plist>

Apply the configuration during the installation by adding the parameter "-applyChoiceChangesXML <your_filename>.xml"

sudo installer -applyChoiceChangesXML choices.xml -pkg Install TeamViewer_Host.pkg -target /

3) If you have an MDM system, you can use Privacy Preferences Policy Control (PPPC) payloads to roll out Accessibility and Full Disk Access for TeamViewer in System Preferences ➜ Security & Privacy ➜ Privacy. Your users will still need to grant Screen Recording access themselves. Starting with macOS 11 Big Sur, you will need to use a ScreenCapture PPPC payload with AllowStandardUserToSetSystemService to allow non-admin users to grant this permission.

An example for an MDM configuration using Mobile Iron to roll out Accessibility access can be found here:

📄 MobileIron Integration - Add TeamViewer apps to macOS Mojave accessibility

Install the customized Host version of TeamViewer

Required installer:

  1. TeamViewer_Host.pkg: Download the file in the TeamViewer (Classic) Management Console under "Design & Deploy" by clicking "Download installer" and choosing "PKG (Host & Full Client for macOS)".
  2. Unzip the PKG.

Steps:

  1. Create a new customization or open an existing one (See How to customize your Host for details)
  2. Copy the ConfigurationID from your customized Host.
  3. Open the terminal or execute the pkg via a script.
  4. Add the ConfigurationID to the filename in the command line:
    • sudo installer -pkg "TeamViewer_Host-idc<ConfigurationID>.pkg" -target /

Summary of parameters

Parameter Description

-idc

The Configuration ID is needed to install a Custom Host. It can't be used to configure a Full client installation.
The ConfigurationID can be retrieved from the Management Console.

Install the customized Host version of TeamViewer silently

Required installer:

  1. TeamViewer_Host.pkg: Download the file in the TeamViewer (Classic) Management Console under "Design & Deploy" by clicking "Download installer" and choosing "PKG (Host & Full Client for macOS)".
  2. Unzip the PKG.

Steps:

1) Create an XML file called (e.g.: choices.xml) and enter the following content:

<?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">
<array>
  <dict>
    <key>attributeSetting</key>
    <integer>1</integer>
    <key>choiceAttribute</key>
    <string>selected</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerhostSilentInstaller</string>
  </dict>
</array>
</plist>

2) (Optional) verify if your configuration will be applied correctly

  • execute the following command:
installer -showChoicesAfterApplyingChangesXML newChoices.xml -pkg "TeamViewer_Host-idc<ConfigurationID>.pkg" -target /
  • This will result in an output that should look similar to this:
<?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">
<array>
  <dict> ... </dict>
  <dict> ... </dict>
  <dict>
    <key>attributeSetting</key>
    <false/>
    <key>choiceAttribute</key>
    <string>visible</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerhostSilentInstaller</string>
  </dict>
  <dict>
    <key>attributeSetting</key>
    <true/>
    <key>choiceAttribute</key>
    <string>enabled</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerhostSilentInstaller</string>
  </dict>
  <dict>
    <key>attributeSetting</key>
    <integer>1</integer>
    <key>choiceAttribute</key>
    <string>selected</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerhostSilentInstaller</string>
  </dict>
</array>
</plist>

Apply the configuration during the installation by adding the parameter "-applyChoiceChangesXML <your_filename>.xml"

sudo installer -applyChoiceChangesXML choices.xml -pkg "TeamViewer_Host-idc<ConfigurationID>.pkg" -target /

3) If you have an MDM system, you can use Privacy Preferences Policy Control (PPPC) payloads to roll out Accessibility and Full Disk Access for TeamViewer in System Preferences ➜ Security & Privacy ➜ Privacy. Your users will still need to grant Screen Recording access themselves. Starting with macOS 11 Big Sur, you will need to use a ScreenCapture PPPC payload with AllowStandardUserToSetSystemService to allow non-admin users to grant this permission.

An example for an MDM configuration using Mobile Iron to roll out Accessibility access can be found here:

📄 MobileIron Integration - Add TeamViewer apps to macOS Mojave accessibility

Install the standard version of TeamViewer

Required installer:

  1. TeamViewer_Full.pkg: Download the file in the TeamViewer (Classic) Management Console under "Design & Deploy" by clicking "Download installer" and choosing "PKG (Host & Full Client for macOS)".
  2. Unzip the PKG.

Steps:

  1. Open the terminal or execute pkg via a script.
  2. Type the following command into the terminal
sudo installer -pkg "TeamViewer_Full.pkg" -target /

The parameter -target defines the path where you want your installation to be located.

🚨 Settings cannot be provided during the installation process on macOS.

Install the standard version of TeamViewer silently

Required installer:

  1. TeamViewer_Full.pkg: Download the file in the TeamViewer (Classic) Management Console under "Design & Deploy" by clicking "Download installer" and choosing "PKG (Host & Full Client for macOS)".
  2. Unzip the PKG.

Steps:

1) Create an XML file called (e.g.: choices.xml) and enter the following content:

<?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">
<array>
  <dict>
    <key>attributeSetting</key>
    <integer>1</integer>
    <key>choiceAttribute</key>
    <string>selected</string>
    <key>choiceIdentifier</key>
    <string>com.teamviewer.teamviewerSilentInstaller</string>
  </dict>
</array>
</plist>

2) (Optional) verify if your configuration will be applied correctly

  • Execute the following command:
installer -showChoicesAfterApplyingChangesXML newChoices.xml -pkg Install\ TeamViewer_Full.pkg -target /
  • This will result in an output that should look similar to this:
<?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"> 
<array>
  <dict> ... </dict> 
  <dict> ... </dict> 
  <dict> 
    <key>attributeSetting</key> 
    <false/> 
    <key>choiceAttribute</key> 
    <string>visible</string> 
    <key>choiceIdentifier</key> 
    <string>com.teamviewer.teamviewerSilentInstaller</string> 
  </dict> 
  <dict> 
    <key>attributeSetting</key> 
    <true/> 
    <key>choiceAttribute</key> 
    <string>enabled</string> 
    <key>choiceIdentifier</key> 
    <string>com.teamviewer.teamviewerSilentInstaller</string>
  </dict>
  <dict> 
    <key>attributeSetting</key> 
    <integer>1</integer> 
    <key>choiceAttribute</key> 
    <string>selected</string> 
    <key>choiceIdentifier</key> 
    <string>com.teamviewer.teamviewerSilentInstaller</string> 
  </dict> 
</array> 
</plist>

Apply the configuration during the installation by adding the parameter "-applyChoiceChangesXML <your_filename>.xml"

sudo installer -applyChoiceChangesXML choices.xml -pkg Install\ TeamViewer_Full.pkg -target /

3) If you have an MDM system, you can use Privacy Preferences Policy Control (PPPC) payloads to roll out Accessibility and Full Disk Access for TeamViewer in System Preferences ➜ Security & Privacy ➜ Privacy. Your users will still need to grant Screen Recording access themselves. Starting with macOS 11 Big Sur, you will need to use a ScreenCapture PPPC payload with AllowStandardUserToSetSystemService to allow non-admin users to grant this permission.

An example for an MDM configuration using Mobile Iron to roll out Accessibility access can be found here:

📄 MobileIron Integration - Add TeamViewer apps to macOS Mojave accessibility

Update a TeamViewer installation

Updating TeamViewer corresponds to the steps that are required for an installation:

  • Install the Standard Host Client Version of Teamviewer
  • Install the Customized Host Client Version of Teamviewer
  • Install the Standard Full Client Version of TeamViewer

Uninstall TeamViewer

A reason to uninstall your TeamViewer might be that you want to switch from a TeamViewer Host Client Version to a Full Client Version.

📌Note: You can uninstall your TeamViewer only manually

Recommended way to uninstall TeamViewer:

  1. Start the TeamViewer application.
  2. Open TeamViewer ➜ Preferences ➜ Advanced.
  3. Scroll down till Uninstall.
  4. (Optional) check the box for Delete configuration files.
  5. Click Uninstall.
  6. Click OK when asked for confirmation.

TeamViewer has been uninstalled.

Perform an assignment

Prerequisites:

  • TeamViewer is already installed.
  • The option Start with system is enabled.
  • TeamViewer service is running!
  • The assignment tool together with the application is installed under
    • /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment
    • (/Applications/TeamViewer.app/Contents/Helpers/TeamViewer_Assignment).

Steps:

  • Run the assignment tool with sudo privileges on all devices that should be assigned. In order to do this in a mass deployment scenario, we advice you to use a script to call the assignment tool with the required parameters.

Host version:

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN> -group <GROUP> -alias <COMPUTERNAME> -grant-easy-access 

Full version:

sudo /Applications/TeamViewer.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN>
  • The device is assigned to the account that created the Custom TeamViewer Host module.
  • Easy Access is (optionally) activated for the device.

Assignment options

The following table shows the possible assignment options (they are all optional).

There are some parameters that need a value (–alias MyAlias) or do not need a value (–reassign).

The options need to be added on the command line.

  • If you have parameter values with blanks (e.g. for the group name) use "<GROUP_NAME_WITH_BLANK>".
  • sudo /Applications/TeamViewer.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN> -group "My Group" -alias "$ALIAS"
  • Parameter names are case sensitive
  • Proxy settings can be specified for the assignment within the ASSIGNMENTOPTIONS. There are additional proxy settings for the TeamViewer connection itself (as defined in the TeamViewer client options). These have to be set outside of the ASSIGNMENTOPTIONS.
  • You can also insert environment variables to your commands for installation/assignment to add dynamic values, e.g. for the alias. You can use environment variables by using $-notation. The following characters should not be contained in the variable values: $, @, `, ´ and variables should always be used within quotes.
    1. Example:
      1. export GROUP="MyGroup"
      2. export ALIAS="MyDevicename"
      3. sudo /Applications/TeamViewer.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN> -group "$GROUP" -alias "$ALIAS"
Option Description

-api-token <TOKEN>

API Token in order to do the assignment to the correct account

-alias [<name>]

Alias for the new device in the computers & contacts list. If the device is already in the contact list, no alias will be applied. The parameter can take the following values:

 

-alias (without value) → alias of the computer will be the teamviewerID sudo

/Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -alias -group MyGroup

-alias hallo → alias of the computer will be "hallo"

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -alias hello -group MyGroup

alias paramter not specified → alias of this computer will be %computername%

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -group MyGroup

-grant-easy-access

If you set this option, easy access is granted after the assignment (same as the "Grant easy access" option in the TeamViewer main window).

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -grant-easy-access -group MyGroup

-reassign

Assigns the device to the account even if the device is already assigned to an account.

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -reassign -group MyGroup

-group <name>

Name of the group in which the device will be added.

 

When the group doesn't exist it will be automatically created.

 

If the device is already present in the computers & contacts list in a different group, it won't be moved to the group.

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -group MyGroup

Only required if no custom host is used, as there is already a default group defined in the custom configuration

-group-id <ID>

This option is an alternative to use the --group parameter if the id of the group is known.

This might be useful in very large customer environments as it speeds up the assignment process. Usually using --group is sufficient.

Note that the ID must be prepended with a literal "g".

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -group-id g123

-wait <seconds>

With this parameter the waiting time for the assignment ca be specified in seconds. The default value of 30 (secs) should usually be sufficient.

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -wait 45 -group MyGroup

-proxy <name>:<port>

Url of your proxy (only for the assignment) in the format <name>:<port>, e. g. --proxy yourproxy:3201

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -proxy yourproxy:3201 -proxy-user FooBar -proxy-pw mypass -group MyGroup

🚨 Important: Please with the URL without http://

-proxy-user <name>

Username which is used for authentication against the proxy (only for the assignment).

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -proxy yourproxy:3201 -proxy-user FooBar -proxy-pw mypass -group MyGroup

-proxy-pw <password>

Password which is used for authentication against the proxy (only for the assignment).

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -proxy yourproxy:3201 -proxy-user FooBar -proxy-pw mypass -group MyGroup

-proxy-pw-base64 <encoded_password>

Same as --proxy-pw, but the password needs to be entered as a Base64 encoded string. Useful for passwords with special characters.

sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <API TOKEN> -proxy yourproxy:3201 -proxy-user FooBar -proxy-pw-base64 bXlwYXNz -group MyGroup