[鯖缶] SNMP(7) Windows 標準状態で SNMP

2017年12月17日

 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 のような列挙ができないので使えるシーンは限られるとは思います(汗






タグ:
カテゴリー: OS, SNMP, Windows, サーバー管理

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org