Azure Virtual Desktopのユーザーごとの利用時間を一括出力する!
Azure Monitor for Azure Virtual DesktopがGAされたのは記憶に新しいですよね。
1. ユーザーごとのAVD接続時間の一覧
利用するのは「WVDConnections」テーブルです。AVDの接続アクティビティのログ情報となります(参考:WVDConnections)
セッションごとの接続の開始時間と終了時間の差をとって、ユーザー、日付でグルーピングしています。
WVDConnections
| where State == "Connected"
| project CorrelationId,UserName,day=format_datetime(TimeGenerated+9h,'yyyy-MM-dd'),SessionHostAzureVmId,ResourceAlias,StartTime=TimeGenerated+9h
| join (WVDConnections
| where State == "Completed"
| project CorrelationId,UserName,SessionHostAzureVmId,day=format_datetime(TimeGenerated+9h,'yyyy-MM-dd'),EndTime=TimeGenerated+9h)
on CorrelationId
| project UserName,day,Duration=EndTime-StartTime
| summarize sum(Duration) by UserName,day
| sort by UserName asc
出力イメージの「UserName」列はAzure ADのユーザー名、「day」列は日時情報、「Duration」列はAVDへの接続時間です。
2. セッションごとのAVD接続時間の一覧
こちらも利用するのは「WVDConnections」テーブルです。
セッションごとの接続の開始時間と終了時間の差をとったものに、接続先のVM情報と利用したサービス情報を付け加えたものになります。
WVDConnections
| where State == "Connected"
| project CorrelationId,UserName,SessionHostAzureVmId,ResourceAlias,StartTime=TimeGenerated+9h
| join (WVDConnections
| where State == "Completed"
| project UserName,SessionHostAzureVmId,EndTime=TimeGenerated+9h, CorrelationId)
on CorrelationId
| project UserName,Duration = EndTime - StartTime, ResourceAlias,SessionHostAzureVmId
| sort by UserName asc
出力イメージの「UserName」列はAzure ADのユーザー名、「Duration」列はAVDへの接続時間、「ResourceAlias」列は利用したアプリのエイリアス、「SessionHostAzureVmId」列は接続先のVMのvmId。vmIdではなく仮想マシン名を表示させるために、VMのテーブルとjoinさせてあげるともっといいかもしれませんね。
3.実際にAVD環境を触ってみたい方へ
弊社では、ご自身でAVDを構築、仕組みなどを学んでいただけるハンズオンセミナーを開催しておりまして、当日は私堀口が、講師として皆様のサポートさせていただきます。
なんと、セミナー終了後も、最大1週間/1万円に達するまでAVD環境をご利用可能という特典付きです!
AVD上で、普段利用しているアプリケーションが動くか試すもよし、セミナー内容を復習するもよし…、ご自由にお使いいただけます。
エンジニアによる丁寧なサポートを実施させていただくため、定員は10名以下の少人数制となっております。
ご興味ある方は、ぜひお早めにお申し込みください。
この記事を書いた人
- 堀口 広太
-
日商エレクトロニクスのテクニカルマーケの堀口です。
セミナーの参加レポートや製品の検証結果などを皆さんにお伝えしていきます!
こんな検証ができないか、等ありましたら是非当社までご連絡ください!