• 製品
  • 使用を開始する
  • 関連ドキュメント
  • リソース

カスタム パターンを作成する

カスタム パターンを作成する

カスタム パターンを作成するには、Discovery/pattern フォルダーに移動します。ここでは、末尾に .pat が付いた新しいファイル (UTF-8) を作成できて、必要なパターン タイプの既存のパターンをコピーして変更できます。新しいパターンを開発してテストするベスト プラクティスは、別の Discovery ツール インスタンスを抽出して、処理する結果データを返すホストまたはデバイスへの接続をセットアップすることです。

次に、「メイン」の HostInfo パターンを除くすべてのパターンを削除します (Linux_Hostinfo_Hostname.pat、Windows_Hostinfo_Hostname_Model.pat、SNMP_Deviceinfo_Default.pat)。Hostname が含まれている「メイン」の HostInfo オブジェクトは必須です。このセットアップでは、他のすべてのパターンの応答を待たずに新しいパターンを高速テストできます。

新しいパターンに必要なすべての XML ノード、つまり Discovery オブジェクトに対するコマンドの結果データを処理する C# クラスを含む <Processing> ノードが必ず含まれるようにしてください。この機能では、Discovery ツールが <Processing> ノードを含む C# ソース コードを読み取り、PatternExec クラスの PerformAction メソッドを呼び出します。

PerformAction メソッドは必須です。Discovery ツールは、次の 3 つのオブジェクトを含むオブジェクト配列によってこのメソッドを呼び出します。

パラメーター

objectType

説明

parameters[0]

コマンド結果

初期パターン コマンドの結果を含む

parameters[1]

iProvider

検出システムに接続されている実行中のプロバイダー クラスを含みます。

このプロバイダーは、必要に応じて他のコマンドを実行するためにパターンで使用されます。

parameters[2]

object

スキャンの開始時に最初に作成される HostInfo-/Device-オブジェクトを含みます。

1 2 3 4 5 public void PerformAction(object[] parameters) { HostInfo hostInfo = (HostInfo)parameters[2]; try {

プロバイダー クラス

ホストまたはデバイスへの接続では、Discovery ツールで使用するプロバイダーのタイプが 4 つあります。次では、接続とデータ収集コマンドの実行を処理するプロバイダーについて説明します。

パターン内では、システムからさらに情報が必要な場合に、実際に接続されているプロバイダーを使用して追加のコマンドを実行できます。

SSH プロバイダー

SSH プロバイダー クラスは Linux システムに接続し、Insight のパターンで使用できます。

1 2 3 4 5 6 7 8 using Insight.Discovery.ProviderClasses; // Include the ProviderClasses Namespace at the Head of the PatternCode using Insight.Discovery.InfoClasses; // Include the InfoClasses Namespace at the Head of the PatternCode // Casting the connected Provider out of the parameters from the PerformAction-Method SSHProvider ssh = (SSHProvider)parameters[1]; // using the SSH-Provider to execute a command and receiving the result. var result = (SSHExecuteResult)ssh.ExecuteCommand("hostname"); // returning the hostname of a Linux System

たとえば、cast SSHProvider は "Linux_Hostinfo_Hostname.pat" パターンで使います。

WMI プロバイダー

WMI プロバイダー クラスは Windows システムに接続し、Insight のパターンで使用できます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 using Insight.Discovery.ProviderClasses; // Include the ProviderClasses Namespace at the Head of the PatternCode using Insight.Discovery.InfoClasses; // Include the InfoClasses Namespace at the Head of the PatternCode // Casting the connected Provider out of the parameters from the PerformAction-Method WMIProvider wmiProvider = (WMIProvider)parameters[1]; // using the WMI-Provider to read a Registry Value. var result = (WMIRegValueResult)wmiProvider.GetRegistryValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<Key>", "DisplayName"); // using the WMI-Provider to get a List of all Registry-Sub-Keys. var result = (WMIRegValueListResult)wmiProvider.GetSubKeysFromRegistry("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"); //using the WMI-Provider to execute a WMI query receiving the result. var result = (WMIQueryResult)wmiProvider.ExecuteWMIQuery("netstat -an"); //using the WMI-Provider to execute a command and receiving the result. var result = (WMIExecuteResult)wmiProvider.ExecuteWMICommand("netstat -an");

SNMP プロバイダー

SNMP プロバイダー クラスは SNMP デバイスに接続し、Insight のパターンで使用できます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 using Insight.Discovery.ProviderClasses; // Include the ProviderClasses Namespace at the Head of the PatternCode using Insight.Discovery.InfoClasses; // Include the InfoClasses Namespace at the Head of the PatternCode // Casting the connected Provider out of the parameters from the PerformAction-Method SNMPProvider snmp = (SNMPProvider)parameters[1]; // using the SNMP-Provider to execute a SNMPGet command and receiving the results var result = (SNMPExecuteResult)snmp.ExecuteCommand("1.3.6.1.2.1.1.6.0", ScanProcessType.SNMP_GET, true); // using the SNMP-Provider to execute a SNMPWalk command and receiving the results var result = (SNMPExecuteResult)snmp.ExecuteCommand("1.3.6.1.2.1.2.2.1.2", ScanProcessType.SNMP_WALK, true); // using the SNMP-Provider to execute a SNMPWalk command with contextName and receiving the results var result = (SNMPExecuteResult)snmp.ExecuteCommand("1.3.6.1.2.1.2.2.1.2", ScanProcessType.SNMP_WALK, "myContext",true);

VIM プロバイダー

SNMP プロバイダー クラスは VMware ESXi システムに接続し、Insight のパターンで使用できます。

1 2 3 4 5 6 7 8 using Insight.Discovery.ProviderClasses; // Include the ProviderClasses Namespace at the Head of the PatternCode using Insight.Discovery.InfoClasses; // Include the InfoClasses Namespace at the Head of the PatternCode // Casting the connected Provider out of the parameters from the PerformAction-Method VIMProvider snmp = (SNMPProvider)parameters[1]; // using the VIM-Provider to execute a command and receiving the results var result = (VIMCommandResult)snmp.ExecuteCommand("HostSystem");

その他の機能

さらに、次の機能も利用できます。

ImportService

アプリの InstallDate など Discovery-Object の Date 属性を設定する場合は、特定の形式 ("MM/dd/yyyy") にする必要があります。 提供される ImportService.ImportDate メソッドを使って変換を実行できます。