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