Windows Media Services 9 に接続中のクライアントの情報をVBScriptでリアルタイムに取得する方法

WIndows Meida 9 Serices

Windows Server 2003付属のWindows Media サービスに接続中のクライアントの情報をVBScriptでリアルタイムに取得する方法です。VBScriptでWindows Media Services 9 Series SDKを使う方法がなかなか見つからなかったのでメモ的エントリです。

まず準備として、Windows Media Services 9 Series SDK(Windows® Server 2003 SP1 Platform SDK)をインストールしてください。インストールの完了には再起動を要します。

これで準備はOKです。つぎに取得について、取得の手段はVB.NET,C++,C#などいろいろあるのですがここではWSHでVBScriptを使います。1秒おきに接続ID・IPアドレス・接続ポート番号・URL・ステータスを表示するサンプルスクリプトを作成しました。

getwmsclientinfo.vbsからダウンロードできます。

Set Server = CreateObject("WMSServer.Server")
do While 1
for i = 0 to Server.Players.Count - 1
Set Item = Server.Players.Item(i)
WScript.Echo Item.ID & ":" & Item.NetworkAddress & ":" & Item.Port & ":" & Item.RequestedURL & ":" & Item.Status
next
WScript.Echo "---"
WScript.Sleep 1000
loop

これをコマンドラインから実行します。WSHをコマンドラインから動作させるときはcscript.exeを使います。

実行結果は以下のようになります。

C:\example\>cscript getwmsclientinfo.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

59:192.168.1.128:1382:rtsp://path/to/url:3
60:192.168.1.128:1383:rtsp://path/to/url:2
61:192.168.1.128:1384:rtsp://path/to/url:2
62:192.168.1.128:1385:rtsp://path/to/url:3
---
59:192.168.1.128:1382:rtsp://path/to/url:3
60:192.168.1.128:1383:rtsp://path/to/url:2
61:192.168.1.128:1384:rtsp://path/to/url:2
62:192.168.1.128:1385:rtsp://path/to/url:3
---
59:192.168.1.128:1382:rtsp://path/to/url:3
60:192.168.1.128:1383:rtsp://path/to/url:2
61:192.168.1.128:1384:rtsp://path/to/url:2
62:192.168.1.128:1385:rtsp://path/to/url:3
---
endless...

注意点として、Windows Media サービスにアクセス権限のないユーザーで実行すると権限が原因のエラーが出ます。例えばASP用に書き換えて権限の無い状態でIISで動作させた場合は「書き込みできません」的なメッセージが出ると思います。

詳細なリファレンスは以下です。VB.NET用ですがVBScriptでも流用可能です。

コメント / トラックバック

コメントは受け付けていません。