MilestonePSToolsを使ってみる

この記事は約8分で読めます。

Milestone Integration Platform Software Development Kit

Milestone Systems社は同社のVMSであるXProtectのインテグレーションを容易にするためにMIP SDK(Milestone Integration Platform Software Development Kit)を提供しています。

このMIP SDKを使用して多くのMilestone SystemsのTechnology Partnerがプラグインソフトウェアを開発し、提供しています。その一部はMilestonePStoolsのホームページ「Technology Partner Finder」で参照することができます。

MIP SDKは汎用のプログラミング言語C#に対応しており、開発のためのリソースは以下よりダウンロードできるようになっています。(2023/10/30現在:Milestone Systems MIP SDKページのAccess the MIP SDK参照)

  • GitHub:サンプルコード 
  • NuGet:.NET Framework dll
  • Visual Studio Marketplace: Visual Studio Template

上述の通り、MIP SDKを使用するためにはVisula C#のプログラミング知識が必要になり、C#開発、実行のための環境も必要です。

MilestonePSToolsとは?

この記事で紹介するMilestonePSToolsはWindowsのシステム管理用に提供されているWindows PowerShell用モジュールであり、MIP SDK用のラッパーとして動作します。

MilestonePSToolsは、Milestone Systemsのシニア プリンシパル サポート エンジニアである Josh Hendricks による独立したプロジェクトに開発され、PowerShell を使用してMilestone XProtect VMSの設定変更または情報、状態取得を容易にし、自動化を可能にします。(Milestone Systems ナレッジベース:How To Use MilestonePSTools PowerShell ModuleのDescriptionから一部抜粋)

MilestonePSToolsの位置づけとサポート/バグ/ドキュメントの詳細については上記ナレッジベースの「How To Use MilestonePSTools PowerShell Module」の「Description」と「Support / Bugs / Documentation」を参照してください。

上記の「Support / Bugs / Documentation」の最後に書いていますが、疑問、問題点が生じた際にはGitHubで質問することが可能です。また同様にこの中で書かれていますが、直接、開発者にEmailで質問することも可能です、腕に覚えがある方は開発者(Josh Hendricks)とのコミュニケーションを楽しむことでMilestonePStoolsへの造詣を深めるのも一つの方法だと思います。

Windows PowerShellは複雑で多様なWindowsおよびそのうえで動くアプリケーションをCLIベースで効率的に管理、運用するために開発されたスクリプト言語です。XProtectのシステムにおいても数十台のサーバーと数百台を超えるカメラを管理、運用する場面があります。そのような場面においてGUI(Management Client)のみで設定変更、情報の確認、保存をすることが困難な場合が多くあります。そのような際にWindows PowerShellモジュールであるMilestonePSToolsが力を発揮します。

また、MilestonePSTools は PowerShell のモジュールとして動作するのでプログラム言語C#の知識は必要なく、特別な開発環境が無くても使用が可能です。また、専用アプリケーションのインストール等の必要がないので実環境に置いて容易に使用可能です。

MilestonePSTools の情報は「MilestonePSTools.com」にて提供しています。

MilestonePSTools と XProtect の関係

MilestonePSTools を使用して XProtect の設定の変更、情報、状態の取得をするには、Management Client でXProtect サーバーにログインで接続するのと同じように最初に MilestonePSTools のコマンドレットの一つである「Connect-ManagementServer」で XProtect サーバーに接続する必要があります。


MilestonePSTools は Management Client同様、必ずしもXProtect のサーバーコンポーネントが動作する PC、サーバー上で動作する必要はありません。
通常は XProtect サーバーではなくクライアントがインストールされているワークステーションや、保守用の PC 上で使う場合が多いです。

Getting Started MilestonePSTools

前述の「MilestonePSTools.com」ページのGetting startedにいくつかのインストール方法が紹介されています。その中で一番簡単な「Quick Install」を紹介します。

インターネットにアクセスできる環境でWindows PoweShellを管理者権限で起動します。起動したら以下のコードを入力します。スペースの都合で複数行に分かれていますが、改行なしで以下のコマンドレット1を実行します。

Set-ExecutionPolicy RemoteSigned -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; Invoke-Expression (Invoke-RestMethod 'https://www.milestonepstools.com/install.ps1')

以下はインストール時の画面キャプチャ(ループ再生)です。早送りしていますが、2分強でインストールは終了します。

Getting startedのページには「Quick Install」以外にもインストール先のPCがインターネットに接続されていない環境(オフライン)でのインストール方法「Install manually」を紹介しています。また機会があればこのブログで紹介したいと思っています。

XProtectにアクセスしてカメラ情報を得る

最初の紹介記事なので今回はMilestonePSToolsを使って、XProtectサーバーにアクセスし、接続されているカメラ情報を取得する流れを簡単に紹介します。この手順は「MilestonePSTools.com」ページの「Tutorial」で紹介されています。

前項「MilestonePSTools と XProtect の関係」で説明したとおり、最初にXProtectにアクセスする場合は「Connect-ManagementServer」コマンドレットを使用します。

Connect-ManagementServer -ShowDialog -AcceptEula

上記のコードで接続のためのコマンドレットを実行します。パラメータ「-AcceptEula」はEnd User License Agreementに同意することを指定しています。「-ShowDialog」はアクセスに必要な情報を入力するダイアログボックスを表示します、下図のようなダイアログボックスが表示されます。

正確な情報を入力し、接続をするとXProtectのマネジメントサーバーにアクセスできるようになります。

この状態でカメラの状態を取得することができるコマンドレット「Get-VmsCameraReport」を実行します。

Get-VmsCameraReport | Out-GridView

上記のコードは「Get-VmsCameraReport」コマンドレットによりXProtectのマネジメントサーバーから属するすべてのカメラの情報を取得し、Grid Viewの形で表示します。Grid Viewの表示はPowerShell の標準コマンドレットである「Out-GridView」2を使用しています。コマンドレット実行の結果は下図のキャプチャのようになります。

下部のスライドバーの状態を見てわかるようにこの図に表示している情報は一部の情報です(実際には80カラムあります)

このコマンドを実行したXProtectをマネジメントクライアントで参照すると以下のようになっており、カメラ名、台数が一致しているのがわかります。

以上、非常に簡単ではありますが、MilestonePSToolsを使用して一度に多くの情報を取得することができることが分かったと思います。

今後、機会があれば、導入時や運用時に役立つMilestonePSToolsの使い方についてこのブログで説明していきたいと思っております。

YouTube MIC Associatesチャンネル

本記事と連動した動画をYouTube MIC Associatesチャンネルにアップロードしています。この記事と合わせて閲覧するとより理解が深まると思います。

字幕を表示してご覧ください。

00:00動画の概要説明
01:26MilestonePSToolsモジュールのインポート
02:01XProtectサーバーへの接続(Connect-ManagementServer)
03:01カメラ情報の取得(Get-VmsCameraReport)
05:08CSVファイルへの出力(Exprot-CSV)
  1. コマンドレットはネイティブの PowerShell コマンドであり、スタンドアロンの実行可能ファイルではありません。 コマンドレットは、必要に応じて読み込むことができる PowerShell モジュールにまとめられています。(Microsoft ホームページ「PowerShell コマンド (コマンドレット) とは」より抜粋) ↩︎
  2. 「Out-GridView」コマンドレットは Windows PowerShellの標準コマンドレットです。パイプでつながれたコマンドからの出力をグリッド ビュー ウィンドウに送信し、出力が対話型テーブルに表示されます。(Microsoftホームページ「PowerShellリファレンス Out-GridView」より一部引用) ↩︎