TeamViewer (Classic)では、データにアクセスして、TeamViewer アカウントのさまざまな側面をコントロールできるウェブベースのAPIを提供しています。

APIを利用することで、TeamViewerの機能を自社環境に統合するアプリケーションを開発したり、誰もが使用できるアプリケーションを開発したりすることができます。

この記事は、すべてのユーザーに適用されます。

概要

例えばデバイスを含むグループを削除する必要があると仮定します。

グループを1つずつ削除しなければなりません。デバイスが数台の場合は問題ありません。ですが、何百台もデバイスが存在する場合は手間がかかります。

このような場合には、APIを活用して、グループが含むデバイスとグループを、自動的に削除するスクリプトを作成しましょう。APIトークンとグループ名を指定するだけで、これを実行することができます。以下では、その方法を説明します。

この方法では、グループ管理およびデバイス管理API関数を使用します。ソリューションの実装には、Windows PowerShellが使用されていました。ユーザートークンを使用すると、コードは、デバイスとグループをmanagement consoleから取得して表示します。これによって、削除するグループを選択することができます。選択すると、結果が整然とコンソールに表示されます。

開始方法

TeamViewerアカウントを持っていることを確認してください。アカウントがない場合、http://login.teamviewer.comで無料で作成することができます。

スクリプトを作成するには、TeamViewerアカウントでTeamViewer (Classic) Management Consoleにログインして、スクリプトトークンを作成します。

コンソールで、ウェブサイト右上のプロファイル設定を開きます。[アプリケーション] を選択して、[スクリプトトークンの作成] をクリックします。フォームに記入してトークンを定義します。

• スクリプト名を入力します。

• スクリプトトークンの説明を入力します。

• スクリプトトークンの権限を選択します。

• グループ管理 – グループを表示、作成、削除、編集、共有します。

• コンピュータ & パートナー – エントリを表示、追加、編集、削除します。

• スクリプトトークンを保存します。

これでトークンが安全な場所に保存されました。スクリプトが実行されると、これが要求されます。

コード

$token = Read-Host -Prompt "Paste your account token code here"
$bearer = "Bearer",$token

$header = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$header.Add("authorization", $bearer)

$webrequest = Invoke-RestMethod -Uri "https://webapi.teamviewer.com/api/v1/groups/" -Method Get -Headers $header
$machine = Invoke-RestMethod -Uri "Https://webapi.teamviewer.com/api/v1/devices/" -Method Get -Headers $header

$i=1
$grpArr = @()

ForEach($grp in $webrequest.groups)
{
    Write-Host $i ")" $grp.name " - " $grp.id
    $grpArr += $grp.id;
    ForEach($dev in $machine.devices)
    {
        If($dev.groupid -eq  $grp.id)
        {
            Write-Host "     " $dev.alias
        }
    } 
    $i += 1
}
$ig = Read-Host -Prompt "Select the group you will like to remove"

ForEach ($dgrp in $machine.devices)
{
    if($dgrp.groupid -eq $grpArr[$ig - 1])
    {
        Write-Host "Delete device: " $dgrp.alias
        $item = $dgrp.device_id
        $delete = Invoke-WebRequest -Uri "Https://webapi.teamviewer.com/api/v1/devices/$item" -Method Delete -Headers $header
    }

}
Write-Host "Delete group id: " $grpArr[$ig - 1] 
   $gid = $grpArr[$ig - 1]
   $remove = Invoke-WebRequest -Uri "Https://webapi.teamviewer.com/api/v1/groups/$gid" -Method Delete -Headers $header 

スクリプトの実行方法

スクリプトコードを任意のテキストエディタにコピーして (メモ帳など)、.ps1ファイルとして保存します。(test.ps1)

動画

スクリプトの動作方法の詳細については、次の動画をご覧ください。

最後に

TeamViewer (Classic) APIは、マネージメントコンソールを最大限活用する必要がある時は貴重なツールです。これをプログラミング言語と創造的に組み合わせることで、お望みの結果を日々の作業で簡単に実現することができます。ぜひご利用ください!