NET-SNMP をインストールすれば Windows でも MIB を参照できるのですが、しかしそういうツールを持ち込めない環境というのもあってそういう場合に困ります。そういう状況で MIB を参照したい場合は Oleprn というライブラリを使うことで SNMP が喋れるようです。(名前からするとプリンターのステータスを拾うためのライブラリなんですかね?)
名前からして OLE なので Excel がインストールされているなら Excel VBA で扱うのがインテリセンスも効くので楽です。
VBE (ALT+F11) をひらき、標準モジュールを作成して参照設定から oleprn 1.0 Type Libraty にチェックを入れます。
コードを入力して実行します。
上記で入力したコードは以下
Sub test() Dim snmp As New OLEPRNLib.snmp ' VBScript : snmp = CreateObject("OlePrn.OleSNMP") ' Powershell : $snmp = New-object -ComObject olePrn.OleSNMP snmp.Open "192.168.0.1", "public" getValue = snmp.Get(".1.3.6.1.2.1.1.5.0") Debug.Print getValue snmp.Close End Sub
いや「Excel もないんです」という場合は vbscript を使うとかします。たぶん上記のコードの Dim snmp As New OLEPRNLib.snmp の部分を snmp = CreateObject("OlePrn.OleSNMP") にすれば動くのではないかと思います。
set snmp = CreateObject("OlePrn.OleSNMP") snmp.Open "192.168.0.1", "public" getValue = snmp.Get(".1.3.6.1.2.1.1.5.0") WScript.Echo getValue snmp.Close
Powershell でやりたい場合も同様です。変数名とか関数の括弧とかに注意する程度です。
$snmp = New-object -ComObject olePrn.OleSNMP $snmp.Open("192.168.0.1", "public") $snmp.Get(".1.3.6.1.2.1.1.5.0") $snmp.Close()
ただ、OID 番号で指定しないとならないのと snmpwalk のような列挙ができないので使えるシーンは限られるとは思います(汗