標準のツールでどこまでできるのか?
snmp(Simple Network Management Protocol)を使えば、各種情報が取れるのは知っているけれど、実際に試す機会がなかったので、色々とテストしてみた。
客先に提案するのに、下調べが必要なのだ。
Windowsマシン自体を持っていないが、仮想マシンで動かしているので、それでテストする。
環境は以下の通り。
ホスト:Ubuntu18.04(192.168.1.203)
ゲスト:Windows7 pro(192.168.1.172)
とりあえず、7も10もほぼ同じらしいので、いつも使っているWindows7でテストする。
まずは、標準のsnmpをインストールする。
コントロールパネル→プログラム→Windowsの機能の有効化または無効化→簡易ネットワーク管理プロトコル(SNMP)→WMI SNMPプロバイダー
続いて、最低限の設定。
コンポーネントサービス→サービス(ローカル)→SNMP Serviceのプロパティ→セキュリティ→コミュニティに「public」を追加→ホストに「情報を取得する側のマシンIPを追加」
実際に叩いてみる
$ snmpwalk -v 1 -c public 192.168.1.172 1.3.6.1.2.1
ああ、もう何から何まで丸裸…。恐ろしい。
すべてのホストから受け付けてはいけないということがよく分かる。
以下一部のみ抜粋
iso.3.6.1.2.1.1.1.0 = STRING: "Hardware: Intel64 Family 6 Model 42 Stepping 7 AT/AT COMPATIBLE - Software: Windows Version 6.1 (Build 7601 Multiprocessor Free)" ←OSバージョン名
:
iso.3.6.1.2.1.1.5.0 = STRING: "w7-vm" ←ホスト名
:
iso.3.6.1.2.1.25.3.2.1.3.1 = STRING: "Send to Microsoft OneNote 16 Driver" ←登録されているプリンタ名
iso.3.6.1.2.1.25.3.2.1.3.2 = STRING: "PDF24"
iso.3.6.1.2.1.25.3.2.1.3.3 = STRING: "PDF24"
iso.3.6.1.2.1.25.3.2.1.3.4 = STRING: "Microsoft XPS Document Writer"
iso.3.6.1.2.1.25.3.2.1.3.5 = STRING: "Microsoft Shared Fax Driver"
:
iso.3.6.1.2.1.25.4.2.1.2.1 = STRING: "System Idle Process" ←動作中のプロセス名
iso.3.6.1.2.1.25.4.2.1.2.4 = STRING: "System"
iso.3.6.1.2.1.25.4.2.1.2.272 = STRING: "smss.exe"
iso.3.6.1.2.1.25.4.2.1.2.320 = STRING: "svchost.exe"
iso.3.6.1.2.1.25.4.2.1.2.344 = STRING: "csrss.exe"
iso.3.6.1.2.1.25.4.2.1.2.380 = STRING: "wininit.exe"
iso.3.6.1.2.1.25.4.2.1.2.392 = STRING: "csrss.exe"
iso.3.6.1.2.1.25.4.2.1.2.440 = STRING: "winlogon.exe"
:
iso.3.6.1.2.1.25.6.3.1.2.1 = STRING: "7-Zip 18.06 (x64)" ←インストールされているプログラム名
iso.3.6.1.2.1.25.6.3.1.2.2 = STRING: "Git version 2.18.0"
iso.3.6.1.2.1.25.6.3.1.2.3 = STRING: "Microsoft Security Essentials"
iso.3.6.1.2.1.25.6.3.1.2.4 = STRING: "Microsoft Office 365 Business - ja-jp"
iso.3.6.1.2.1.25.6.3.1.2.5 = STRING: "OpenSSL 1.1.0h Light (64-bit)"
iso.3.6.1.2.1.25.6.3.1.2.6 = STRING: "Oracle VM VirtualBox Guest Additions 5.2.10"
iso.3.6.1.2.1.25.6.3.1.2.7 = STRING: "Microsoft SQL Server 2016 T-SQL ScriptDom"
iso.3.6.1.2.1.25.6.3.1.2.8 = STRING: "Microsoft SQL Server Compact 4.0 SP1 x64 JPN"
iso.3.6.1.2.1.25.6.3.1.2.9 = STRING: "Windows App Certification Kit Native Components"
iso.3.6.1.2.1.25.6.3.1.2.10 = STRING: "Microsoft .NET Framework 4.7.2"
iso.3.6.1.2.1.25.6.3.1.2.11 = STRING: "VS Script Debugging Common"
iso.3.6.1.2.1.25.6.3.1.2.12 = STRING: "MySQL Server 8.0"
:
:
ネットワークの構成や、Adaptorの種類も見えるし…。
他にも、調べないとよくわからない情報まで一覧で取得可能だということがわかった。
あとは、各マシンに同様な設定を行い、必要な項目のみ取得して整形すれば行けそうだ。
これだけの情報が取れれば、CUI(shスクリプトかperlかrubyかpython辺り)で加工すれば良さげ。
何事も、調べてみないとね…。
あとは、MIBとOIDについて、しっかり理解しておけば何とかなりそうで一安心。
各アプリのライセンス情報はどうやって取得すればいいかなぁ
あとは、レジストリで設定の配布ができれば簡単だけどな。
【参考にした所】
などなど
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。