TeamViewer の統合

コンピュータとネットワークにリモートでアクセスするための高速でセキュアなオールインワンのソリューションである TeamViewer を Jamf Pro に統合することで、Jamf Pro の管理者とエンドユーザのコンピュータとの間でリモート接続を確立して画面共有を行うことができます。Jamf Pro と TeamViewer を使用してリモート管理セッションを確立する方法については、TeamViewer を使用した画面共有 を参照してください。

注:

TeamViewer の統合では、TeamViewer の 3 つのアプリケーション (TeamViewer、TeamViewer Host、TeamViewer QuickSupport) のすべてをサポートします。

TeamViewer では、接続に以下のネットワークポートを使用します。

  • 5938

    これはプライマリポートです。ファイアウォールで最低限の設定として許可されている必要があります。

  • 443

    これは、TeamViewer がポート 5938 を介して接続できない場合に使用されます。TeamViewer で選択したプロセス (アップデートのチェックなど) と TeamViewer マネージメントコンソールで作成されたカスタムのモジュールにおいても、ポート 443 が使用されます。

  • 80

    これは、TeamViewer がポート 5938 または 443 を介して接続できない場合に使用されます。

注:

ポート 80 での接続速度は、ポート 5938 または 443 の場合よりも低速で信頼性の低いものになります。接続が一時的に切断された場合に、自動的に再接続されることはありません。

TeamViewer の統合はサイトごとに行います。つまり、Jamf Pro では、1 つのサイトにつき、1 つの構成を追加することができます。お使いの環境にサイトが存在しない場合、Jamf Pro インスタンスの完全なコンテキストで TeamViewer の構成を追加することができます。

新規 TeamViewer 構成の追加

要件
  • 管理権限のある TeamViewer アカウント

  • リモート管理権限のある Jamf Pro ユーザアカウント

  • TeamViewer で設定した Jamf Pro 用スクリプトトークン

  • Self Service の通知を送信するには、Jamf Pro の Self Service 設定の「Interaction (インタラクション)」セクションで構成する必要があります。詳しくは、macOS 用 Jamf Self Service の通知 を参照してください。

  1. 管理アカウントで TeamViewer Management Console (TeamViewer マネージメントコンソール) にログインし、以下のいずれかを実行します。
    • スクリプトトークンを取得するには、Edit profile (プロファイルを編集) > Apps (アプリ) に移動します。トークンには、「Create, view and edit all sessions (すべてのセッションの作成、表示、編集)」セッション管理権限を含める必要があります。

    • トークンを作成するには、以下の内容を実行します。

      1. TeamViewer マネージメントコンソールの右上隅で、プロファイルの設定を開きます。

      2. Apps (アプリ) をクリックします。

      3. Create script token (スクリプトトークンの作成) をクリックします。

      4. トークンの名前と説明を入力します。

      5. Session management (セッション管理) ポップアップメニューから、Create, view and edit all sessions (すべてのセッションの作成、表示、編集) を選択します。

      6. Save (保存) をクリックします。

    注:

    アクセス不可能なアカウントの潜在的な問題を回避するために、一般の TeamViewer アカウント (support@yourcompany.com など) を使用してスクリプトトークンを作成することを推奨します。スクリプトトークンを特定の管理者に関連付けないでください。

  2. 別の Web ブラウザウィンドウで、Jamf Pro にログインします。
  3. ページ右上隅の Settings (設定) をクリックします。
  4. Global Management (一括管理) セクションの Remote Administration (リモート管理) をクリックします。
  5. New (新規) をクリックします。
  6. 画面の指示に従って、TeamViewer の構成を追加します。以下のことに配慮してください。
    • 構成はサイトごとに行います。お使いの環境にサイトが含まれており、Jamf Proサイトの完全な管理者としてログインしている場合、構成を行うサイトを選択するか、Jamf Pro インスタンスの完全なコンテキストで構成を追加する必要があります。サイト管理者の場合、サイトは自動的に割り当てられます。

    • Maximum Session Time (最大セッション時間) 設定で、セッションの期間を制御することができます。デフォルトの設定は 15 分で、最小値は 1 分、最大値は 1440 分です。最小値には、5 分より大きい値を設定することを推奨します。セッション中に開始されたミーティングは、セッションがタイムアウトしても終了しません。

  7. Complete (完了) をクリックします。

構成を保存すると、自動接続検証がトリガーされます。構成を使用できるようにするには、検証プロセスに成功する必要があります。

リモートコンピュータのプライバシー権限の要件

TeamViewer のセッションを行うには、TeamViewer アプリケーションがリモートコンピュータ上に以下のプライバシー権限を持っている必要があります。

  • アクセシビリティ

    これはスクリプトとシステムのコマンドを実行するために必須です。

  • フルディスクアクセス

    ファイル転送と、コンピュータ上のすべてのユーザの特定の管理設定において必須です。

  • 画面の記録

    これにより、セッションをサポートする側がエンドユーザの画面を見ることができます。

管理者権限を持つエンドユーザは、プライバシー権限を手動で付与することができます。ただし、Jamf は、Privacy Preference Policy Control (プライバシー環境設定ポリシーコントロール) (PPPC) 構成プロファイルを展開し、エンドユーザに代わって必要な権限を付与することを推奨します。

注:

管理者によって付与される権限は、コンピュータ上のすべてのユーザに付与されます。詳しくは、Apple の macOS ユーザガイドMac の「プライバシー」環境設定を変更するを参照してください。

TeamViewer のプライバシー権限を付与するための .mobileconfig ファイルのアップロード

TeamViewer に必要なプライバシー権限を付与するにあたり、Jamf Pro 管理者は、以下のモバイル構成ファイルのいずれかをアップロードするか、必要な PPPC 構成プロファイルを手動で作成するかを選択することができます。mobileconfig ファイルのいずれかをアップロードするには、コンピュータ構成プロファイル を参照してください。

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>構成</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>システム</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>構成</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>システム</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>構成</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>システム</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>

TeamViewer のプライバシー権限を付与するための構成プロファイルの手動作成

  1. Jamf Pro で、サイドバーのトップの Computers (コンピュータ) をクリックします。
  2. サイドバーの Configuration Profiles (構成プロファイル) をクリックします。
  3. New (新規) をクリックします。
  4. General (一般) ペイロードを使用して、基本の設定を構成します。
  5. Privacy Preferences Policy Control (プライバシー環境設定ポリシーコントロール) ペイロードの構成方法:
    1. Identifier (識別子) フィールドに com.teamviewer.TeamViewerQS を入力します。
    2. Identifier type (識別子タイプ) ポップアップメニューから Bundle ID (バンドル ID) を選択します。

      この手順では、リモート管理用のアプリケーションとして TeamViewer QuickSupport を使用します。TeamViewer の各アプリケーションにおいて、以下の識別子とコード要件を使用します。

      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/TeamViewer Full start as service

      識別子: 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 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. App or Service (App またはサービス) テーブルで、以下を設定します。
      • Accessibility (アクセシビリティ) の値を Allow (許可) に設定 — これにより、アクセシビリティ権限が付与されます。

      • SystemPolicyAllFiles (全ファイルのシステムポリシー) の値を Allow (許可) に設定 — これにより、フルディスクアクセス権限が付与されます。

      • (macOS 11 以降を搭載したコンピュータのみのオプション) ScreenCapture (画面キャプチャ) の値を Allow Standard Users to Allow Access (標準ユーザがアクセスを許可することを許可) に設定 — これにより、スクリーンレコーディング権限が付与されます。管理者権限を持たないユーザは、TeamViewer での画面共有を可能にするかどうかを判断する必要があります。

      重要:

      ScreenCapture (画面キャプチャ) 設定を含む構成プロファイルを macOS 10.15.7 以前を搭載したコンピュータに展開しようとすると、プロファイルのインストールに失敗します。

  6. Scope (範囲) タブをクリックし、プロファイルの適用範囲を設定します。
  7. (オプション) Self Service で利用できるプロファイル作成を選択する場合、Self Service タブをクリックして、プロファイルの Self Service 設定を構成します。
  8. Save (保存) をクリックします

Scope (適用範囲) に含まれる展開ターゲットが次回 Jamf Pro と通信する際にプロファイルが配布されます。

Jamf Pro を使用した TeamViewer アプリケーションの展開

Jamf は、リモートサポートのセッション中に、クライアントの Mac に TeamViewer QuickSupport アプリケーションをダウンロードすることを推奨します。この際、ソフトウェアを事前にインストールする必要はありません。ただし、以下の手順で、TeamViewer または TeamViewer Host アプリケーションのいずれかを事前にインストールすることができます。

注:

エンドユーザの Mac コンピュータにインストールされた TeamViewer アプリケーションにおいて、ライセンスは不要です。TeamViewer のスクリプトは、Composer を使用した再パッケージ化を回避します。

要件
  • 「Install TeamViewer.pkg」インストーラ、または「Install TeamViewerHost.pkg」インストーラ

  • 「Install TeamViewer with Choices」スクリプト、または「Install TeamViewer Host with Choices」スクリプト

  1. TeamViewer macOS 版のページから、TeamViewer または TeamViewer Host をダウンロードします。
  2. DMG ファイルを開きます。
  3. 「Install TeamViewer.app」または「Install TeamViewer Host.app」を右クリックし、Show Package Contents (パッケージ内容を表示) を選択します。
  4. Contents (目次) > Resources (リソース) を開きます。「Install TeamViewer.pkg」または「Install TeamViewerHost.pkg」のパッケージを Jamf Pro > Settings (設定) > Computer Management (コンピュータ管理) > Packages (パッケージ) にアップロードします。
  5. 以下から希望するスクリプトを選んでそれを 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>選択済み</string>
              <key>choiceIdentifier</key>
              <string>com.teamviewer.teamviewerPriviledgedHelper</string>
          </dict>
          <dict>
              <key>attributeSetting</key>
              <integer>1</integer>
              <key>choiceAttribute</key>
              <string>選択済み</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>選択済み</string>
              <key>choiceIdentifier</key>
              <string>com.teamviewer.teamviewerPriviledgedHelper</string>
          </dict>
          <dict>
              <key>attributeSetting</key>
              <integer>1</integer>
              <key>choiceAttribute</key>
              <string>選択済み</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. 手順 4 で作成した DMG とインストーラスクリプトを使用して、TeamViewer をインストールするポリシーを作成します。次のことを確認します:
    • TeamViewer パッケージが Install (インストール) ではなく Cache (キャッシュ) に設定されている。

    • TeamViewer スクリプトの優先順位が After (後) に設定されている。

    ポリシーの作成方法については、ポリシーの管理 を参照してください。

コンピュータ上のポリシーは、次回 Jamf Pro へチェックインする際に General (一般) ペイロードのクライテリアを満たす Scope (適用範囲) 内で実行されます。