TeamViewer Integration

Integrating Jamf Pro with TeamViewer, a fast and secure all-in-one solution for gaining access to computers and networks remotely, allows you to establish a remote screen-sharing connection between a Jamf Pro administrator and an end user's computer. For information on establishing a remote administration session using Jamf Pro and TeamViewer, see Screen Sharing Using TeamViewer.

Note: TeamViewer integration supports all three of TeamViewer's applications: TeamViewer, TeamViewer Host, and TeamViewer QuickSupport.

TeamViewer uses the following network ports for connections:

  • 5938—This is the primary port. Your firewall settings should allow this at a minimum.

  • 443—This is used if TeamViewer cannot connect over port 5938. Selected TeamViewer processes (e.g., update checks) and custom modules created in the TeamViewer Management Console also use port 443.

  • 80—This is used if TeamViewer cannot connect over port 5938 or 443.

    Note: The connection speed over port 80 is slower and less reliable than ports 5938 or 443. There is no automatic reconnection if the connection is temporarily lost.

TeamViewer integration is site specific. This means Jamf Pro allows you to add one configuration per site. If there are no sites in your environment, you can add a TeamViewer configuration in the full context of your Jamf Pro instance.

Adding a New TeamViewer Configuration

Requirements

  • TeamViewer account with administrative privileges

  • A Jamf Pro user account with Remote Administration privileges

  • A script token for Jamf Pro configured in TeamViewer

  • To send Self Service notifications, you must configure them in the Interaction section of the Self Service settings in Jamf Pro. For more information, see Jamf Self Service for macOS Notifications.

Procedure

  1. Log in to the TeamViewer Management Console with your management account and do one of the following:

    • To retrieve a script token, navigate to Edit profile > Apps. Your token must include the "Create, view, and edit all sessions" session management privilege.

    • To create a token, do the following:

      1. In the top-right corner of the TeamViewer Management Console, open your profile settings.

      2. Click Apps.

      3. Click Create script token.

      4. Add the name and description for the token.

      5. From the Session management pop-up menu, choose Create, view and edit all sessions.

      6. Click Save.

    Note: To avoid potential issues with an inaccessible account, it is recommended to create the script token using a general TeamViewer account (e.g., support@yourcompany.com). Do not link the script token to a specific administrator.

  2. In a separate web browser window, log in to Jamf Pro.

  3. In the top-right corner of the page, click Settings images/download/thumbnails/85399369/Settings_Icon.png .

  4. Click Global Management.

  5. Click Remote Administration images/download/thumbnails/85399369/remote_administration.png .

  6. Click New.

  7. Follow the onscreen instructions to add a TeamViewer configuration. Consider the following:

    • The configuration is site specific. If your environment includes sites and you are logged in as a Jamf Pro Site full administrator, you must select a site for your configuration or add a configuration in the full context of your Jamf Pro instance. For site administrators, the site is automatically assigned.

    • The Maximum Session Time setting allows you to control the session duration. It defaults to 15 minutes with a minimum value of 1 minute and a maximum value of 1440 minutes. It is recommended to use the minimum value greater than 5 minutes. Meetings started during a session are not terminated when the session times out.

  8. Click Complete.

Saving the configuration triggers automatic connection verification. The verification process must succeed before you can use the configuration.

Privacy Permissions Requirements for Remote Computers

To conduct a TeamViewer session, the TeamViewer application requires the following Privacy permissions on a remote computer:

  • Accessibility—This is required to run scripts and system commands.

  • Full Disk Access—This is required for File Transfer and certain administrative settings for all users on a computer.

  • Screen Recording—This allows the session supporter to see the end user's screen.

End users with administrator privileges can grant the privacy permissions manually. However, Jamf recommends deploying a Privacy Protection Policy Control (PPPC) configuration profile to grant the necessary privileges on behalf of the end users.

Note: Permissions granted by an administrator are granted to all users on the computer. For more information, see Change Privacy preferences on Mac in Apple's macOS User Guide.

Uploading a .mobileconfig File to Grant Privacy Permissions for TeamViewer

To grant the necessary privacy permissions for TeamViewer, Jamf Pro administrators can choose to upload one of the following mobile configuration files or manually create the necessary PPPC configuration profile. To upload one of the mobileconfig files below, see Computer Configuration Profiles.

TeamViewer Unsigned.mobileconfig

<?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">
<dict>
<key>PayloadUUID</key>
<string>d0adae37-56d9-47d4-9907-920fa564b45c</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadOrganization</key>
<string>Jamf</string>
<key>PayloadIdentifier</key>
<string>d0adae37-56d9-47d4-9907-920fa564b45c</string>
<key>PayloadDisplayName</key>
<string>TeamViewer</string>
<key>PayloadDescription</key>
<string/>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadUUID</key>
<string>E48F876C-0EE8-45D0-BBDA-6312D03484C4</string>
<key>PayloadType</key>
<string>com.apple.TCC.configuration-profile-policy</string>
<key>PayloadOrganization</key>
<string>Jamf</string>
<key>PayloadIdentifier</key>
<string>154416B2-3FA9-4CD8-9708-61FC5A1AF02C</string>
<key>PayloadDisplayName</key>
<string>TeamViewer</string>
<key>PayloadDescription</key>
<string/>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>Services</key>
<dict>
<key>ScreenCapture</key>
<array>
<dict>
<key>Authorization</key>
<string>AllowStandardUserToSetSystemService</string>
<key>Identifier</key>
<string>com.teamviewer.TeamViewer</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewer" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
</dict>
</array>
<key>Accessibility</key>
<array>
<dict>
<key>Identifier</key>
<string>com.teamviewer.TeamViewer</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewer" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
<key>Allowed</key>
<integer>1</integer>
</dict>
</array>
<key>SystemPolicyAllFiles</key>
<array>
<dict>
<key>Identifier</key>
<string>com.teamviewer.TeamViewer</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewer" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
<key>Allowed</key>
<integer>1</integer>
</dict>
</array>
</dict>
</dict>
</array>
</dict>
</plist>


TeamViewer Host Unsigned.mobileconfig

<?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">
<dict>
<key>PayloadUUID</key>
<string>47FC645A-AF41-46A3-81D7-11D03C37D592</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadOrganization</key>
<string>Jamf</string>
<key>PayloadIdentifier</key>
<string>47FC645A-AF41-46A3-81D7-11D03C37D592</string>
<key>PayloadDisplayName</key>
<string>TeamViewer Host</string>
<key>PayloadDescription</key>
<string/>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadUUID</key>
<string>5B08D6F0-2C2C-4473-8125-FB5BE08C69E3</string>
<key>PayloadType</key>
<string>com.apple.TCC.configuration-profile-policy</string>
<key>PayloadOrganization</key>
<string>Jamf</string>
<key>PayloadIdentifier</key>
<string>5B08D6F0-2C2C-4473-8125-FB5BE08C69E3</string>
<key>PayloadDisplayName</key>
<string>TeamViewer</string>
<key>PayloadDescription</key>
<string/>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>Services</key>
<dict>
<key>ScreenCapture</key>
<array>
<dict>
<key>Authorization</key>
<string>AllowStandardUserToSetSystemService</string>
<key>Identifier</key>
<string>com.teamviewer.TeamViewerHost</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewerHost" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
</dict>
</array>
<key>Accessibility</key>
<array>
<dict>
<key>Identifier</key>
<string>com.teamviewer.TeamViewerHost</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewerHost" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
<key>Allowed</key>
<integer>1</integer>
</dict>
</array>
<key>SystemPolicyAllFiles</key>
<array>
<dict>
<key>Identifier</key>
<string>com.teamviewer.TeamViewerHost</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewerHost" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
<key>Allowed</key>
<integer>1</integer>
</dict>
</array>
</dict>
</dict>
</array>
</dict>
</plist>

TeamViewer QuickSupport Unsigned.mobileconfig

<?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">
<dict>
<key>PayloadUUID</key>
<string>3F7A9A1D-1CA8-474C-A82F-AB3EB1C8C30E</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadOrganization</key>
<string>Jamf</string>
<key>PayloadIdentifier</key>
<string>3F7A9A1D-1CA8-474C-A82F-AB3EB1C8C30E</string>
<key>PayloadDisplayName</key>
<string>TeamViewer QuickSupport</string>
<key>PayloadDescription</key>
<string/>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadUUID</key>
<string>0452EAAE-18FB-403F-B938-CBCFD0BF4BC1</string>
<key>PayloadType</key>
<string>com.apple.TCC.configuration-profile-policy</string>
<key>PayloadOrganization</key>
<string>Jamf</string>
<key>PayloadIdentifier</key>
<string>0452EAAE-18FB-403F-B938-CBCFD0BF4BC1</string>
<key>PayloadDisplayName</key>
<string>TeamViewer</string>
<key>PayloadDescription</key>
<string/>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>Services</key>
<dict>
<key>ScreenCapture</key>
<array>
<dict>
<key>Authorization</key>
<string>AllowStandardUserToSetSystemService</string>
<key>Identifier</key>
<string>com.teamviewer.TeamViewerQS</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewerQS" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
</dict>
</array>
<key>Accessibility</key>
<array>
<dict>
<key>Identifier</key>
<string>com.teamviewer.TeamViewerQS</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewerQS" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
<key>Allowed</key>
<integer>1</integer>
</dict>
</array>
<key>SystemPolicyAllFiles</key>
<array>
<dict>
<key>Identifier</key>
<string>com.teamviewer.TeamViewerQS</string>
<key>CodeRequirement</key>
<string>anchor apple generic and identifier "com.teamviewer.TeamViewerQS" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>StaticCode</key>
<integer>0</integer>
<key>Allowed</key>
<integer>1</integer>
</dict>
</array>
</dict>
</dict>
</array>
</dict>
</plist>

Manually Creating a Configuration Profile to Grant Privacy Permissions for TeamViewer

  1. Log in to Jamf Pro.

  2. Click Computers at the top of the page.

  3. Click Configuration Profiles.

  4. Click New images/download/thumbnails/85399369/Icon_New_Button.png .

  5. Use the General payload to configure basic settings.

  6. Configure the Privacy Preferences Policy Control payload:

    1. In the Identifier field, enter com.teamviewer.TeamViewerQS.

    2. From the Identifier type pop-up menu, choose Bundle ID.

      The procedure includes TeamViewer QuickSupport as the application for remote administration. Use the following identifiers and code requirements for the respective TeamViewer applications:

      Application

      Identifier

      Code Requirement

      TeamViewer QuickSupport

      com.teamviewer.TeamViewerQS

      anchor apple generic and identifier "com.teamviewer.TeamViewerQS" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)

      TeamViewer Full normal

      com.teamviewer.TeamViewer

       

      anchor apple generic and identifier "com.teamviewer.TeamViewer" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)

      TeamViewer Full start as service

      TeamViewer Host

      com.teamviewer.TeamViewerHost

      anchor apple generic and identifier "com.teamviewer.TeamViewerHost" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7UGFBUGV6)

    3. In the App or Service table, add the following:

      • Accessibility with the value Allow—This will grant the Accessibility permission.

      • SystemPolicyAllFiles with the value Allow—This will grant the Full Disk Access permission.

      • (Optional, computers with macOS 11 or later only) ScreenCapture with the value Allow Standard Users to Allow Access—This will grant the Screen Recording permission. Users without administrator privileges must decide if TeamViewer can share the screen.

        Important: Attempting to deploy the configuration profile with the ScreenCapture setting to computers with macOS 10.15.7 or earlier will cause the profile installation to fail.

  7. Click the Scope tab and configure the scope of the profile.

  8. (Optional) If you chose to make the profile available in Self Service, click the Self Service tab to configure Self Service settings for the profile.

  9. Click Save images/download/thumbnails/85399369/floppy-disk.png .

The profile is distributed to the deployment targets in the scope the next time they contact Jamf Pro.

Deploying the TeamViewer Application Using Jamf Pro

Jamf recommends the client Mac download the TeamViewer QuickSupport application during the remote support session. This requires no prior software installation. However, you can pre-install either the TeamViewer or TeamViewer Host application using the following procedure.

Note: TeamViewer applications installed on end user Mac computers do not require licensing. The TeamViewer scripts avoid using Composer to repackage.

Requirements

  • "Install TeamViewer.pkg" or "Install TeamViewerHost.pkg" installer

  • "Install TeamViewer with Choices" script or "Install TeamViewer Host with Choices" script

Procedure

  1. Download the TeamViewer or TeamViewer Host from the TeamViewer for macOS page.

  2. Open the DMG file.

  3. Right-click the "Install TeamViewer.app" or "Install TeamViewer Host.app" and choose Show Package Contents.

  4. Open Contents > Resources. Upload the "Install TeamViewer.pkg" or "Install TeamViewerHost.pkg" package to Jamf Pro > Settings > Computer Management > Packages.

  5. Choose a desired script below and add the script to Jamf Pro > Settings > Computer Management > Scripts.

    Install TeamViewer with Choices

    #!/bin/zsh
    function logmessage()   {
    if [ $? = 0 ] ; then
    echo "$1"
    else
    echo "$2"
    echo "Aborting script"
    cleanup
    exit 1
    fi
    }

    function cleanup() {
    /bin/rm -Rf "$tempDirectory"
    logmessage "Removed temporary items." "Failed removing temporary items."
    /bin/rm -f "/Library/Application Support/JAMF/Waiting Room/Install TeamViewer.pkg" && /bin/rm -Rf "/Library/Application Support/JAMF/Waiting Room/Install TeamViewer.pkg.cache.xml"
    logmessage "Removed TeamViewer package and supporting files from Jamf Waiting Room." "Failed Removing TeamViewer package and supporting files from Jamf Waiting Room."
    }


    choicesXML='<?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.teamviewerPriviledgedHelper</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>'


    # create temporary working directory
    workDirectory=$( /usr/bin/basename $0 )
    tempDirectory=$( /usr/bin/mktemp -d "/private/tmp/$workDirectory.XXXXXX" )
    logmessage "Created working directory '$tempDirectory'." "Failed to create working directory '$tempDirectory'."

    # change directory to temporary working directory
    cd "$tempDirectory"
    logmessage "Changed directory to working directory '$tempDirectory'." "Failed to change directory to working directory '$tempDirectory'."

    echo "$choicesXML" > "$tempDirectory/choices.xml"
    logmessage "Created choices.xml file in '$tempDirectory'." "Created choices.xml file in '$tempDirectory'."

    /usr/sbin/installer -pkg "/Library/Application Support/JAMF/Waiting Room/Install TeamViewer.pkg" -applyChoiceChangesXML "$tempDirectory/choices.xml" -target /
    logmessage "Installed TeamViewer package with choices." "Failed to install TeamViewer package with choices."

    cleanup

    exit 0

    Install TeamViewer Host with Choices

    #!/bin/zsh
    function logmessage()   {
        if [ $? = 0 ] ; then
    echo "$1"
    else
    echo "$2"
    echo "Aborting script"
    cleanup
    exit 1
    fi
    }

    function cleanup() {
    /bin/rm -Rf "$tempDirectory"
    logmessage "Removed temporary items." "Failed removing temporary items."
    /bin/rm -f "/Library/Application Support/JAMF/Waiting Room/Install TeamViewerHost.pkg" && /bin/rm -Rf "/Library/Application Support/JAMF/Waiting Room/Install TeamViewerHost.pkg.cache.xml"
    logmessage "Removed TeamViewer Host package and supporting files from Jamf Waiting Room." "Failed Removing TeamViewer Host package and supporting files from Jamf Waiting Room."
    }


    choicesXML='<?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.teamviewerPriviledgedHelper</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>'


    # create temporary working directory
    workDirectory=$( /usr/bin/basename $0 )
    tempDirectory=$( /usr/bin/mktemp -d "/private/tmp/$workDirectory.XXXXXX" )
    logmessage "Created working directory '$tempDirectory'." "Failed to create working directory '$tempDirectory'."

    # change directory to temporary working directory
    cd "$tempDirectory"
    logmessage "Changed directory to working directory '$tempDirectory'." "Failed to change directory to working directory '$tempDirectory'."

    echo "$choicesXML" > "$tempDirectory/choices.xml"
    logmessage "Created choices.xml file in '$tempDirectory'." "Created choices.xml file in '$tempDirectory'."

    /usr/sbin/installer -pkg "/Library/Application Support/JAMF/Waiting Room/Install TeamViewerHost.pkg" -applyChoiceChangesXML "$tempDirectory/choices.xml" -target /
    logmessage "Installed TeamViewerHost package with choices." "Failed to install TeamViewerHost package with choices."

    cleanup

    exit 0
  6. Create a policy to install TeamViewer using the DMG from step 3 and the installer script. Ensure the following:

    • TeamViewer package is set to Cache, not Install.

    • TeamViewer script priority is set to After.

    For instructions on creating a policy, see Policy Management.

The policy will run on computers in the scope the next time they check in with Jamf Pro and meet the criteria in the General payload.

Related Information

For related information, see documentation resources from TeamViewer.

Copyright     Privacy Policy     Terms of Use     Security
© copyright 2002-2021 Jamf. All rights reserved.