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:
- 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)".
- 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:
- 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)".
- 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:
Install the customized Host version of TeamViewer
Required installer:
- 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)".
- Unzip the PKG.
Steps:
- Create a new customization or open an existing one (See How to customize your Host for details)
- Copy the ConfigurationID from your customized Host.
- Open the terminal or execute the pkg via a script.
- Add the ConfigurationID to the filename in the command line:
- sudo installer -pkg "TeamViewer_Host-idc<ConfigurationID>.pkg" -target /
Summary of parameters
Install the customized Host version of TeamViewer silently
Required installer:
- 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)".
- 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:
Install the standard version of TeamViewer
Required installer:
- 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)".
- Unzip the PKG.
Steps:
- Open the terminal or execute pkg via a script.
- 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:
- 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)".
- 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:
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:
- Start the TeamViewer application.
- Open TeamViewer ➜ Preferences ➜ Advanced.
- Scroll down till Uninstall.
- (Optional) check the box for Delete configuration files.
- Click Uninstall.
- 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.
- Example:
- export GROUP="MyGroup"
- export ALIAS="MyDevicename"
- sudo /Applications/TeamViewer.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN> -group "$GROUP" -alias "$ALIAS"
For you to copy/paste
Option
Description
-api-token <YOUR_APITOKEN>
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 <YOUR_APITOKEN> -alias -group MyGroup
- -alias hallo → alias of the computer will be "hello"
sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN> -alias hello -group MyGroup
- alias parameter not specified → alias of this computer will be %computername%
sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN> -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 (Classic) main window).
sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN> -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 <YOUR_APITOKEN> -reassign -group MyGroup
-group <name>
Name of the group to which the device will be added.
When the group doesn't exist, it will be automatically created.
If the device is already 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 <YOUR_APITOKEN> -group MyGroup
Only required if no custom host is used, as a default group is already defined in the custom configuration.
-group-id <ID>
This option is an alternative to using the --group parameter if the group's id is known.
This might be useful in 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 <YOUR_APITOKEN> -group-id g123
-wait <seconds>
With this parameter, the waiting time for the assignment can be specified in seconds. The default value of 30 (secs) should usually be sufficient.
sudo /Applications/TeamViewerHost.app/Contents/Helpers/TeamViewer_Assignment -api-token <YOUR_APITOKEN> -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 <YOUR_APITOKEN> -proxy yourproxy:3201 -proxy-user FooBar -proxy-pw mypass -group MyGroup
⚠ Warning: 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 <YOUR_APITOKEN> -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 <YOUR_APITOKEN> -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 <YOUR_APITOKEN> -proxy yourproxy:3201 -proxy-user FooBar -proxy-pw-base64 bXlwYXNz -group MyGroup