VB.NET掃描系統服務實現原理分析
VB.NET編程語言的功能強大,而且可以輕松的幫助開發人員實現各種需求。比如對系統的操作方面,就可以通過這一語言特定的操作方法來獲取系統信息,掃描系統服務等等。我們在這里就針對VB.NET掃描系統服務的相關方法做一個詳細的介紹。#t#
在大中型企業信息系統中,對客戶端PC的管理,往往是容易出現問題的環節。因此,很多大公司引入了各種分布式的管理系統,例如防病毒方面的NortonAntiVirus,BlackICE防火墻,微軟的SMS(SystemManagementServer),等等,這些系統都會在客戶端的系統安裝相應的客戶端軟件,一般都是以服務的形式出現。
但是由于種種原因,這些服務會停止運行或者該客戶機根本沒有安裝這些客戶端服務,這樣管理系統就出現了疏漏,有可能造成問題,如因無法防御病毒而成為病毒源,無法為該客戶端發布軟件,無法管理客戶PC等等。在此,我們提供一個方案,可以定時按照IP地址掃描網絡,報告出那些系統的特定的服務的狀態。
這個VB.NET掃描系統服務方案使用了Microsoft.net技術,同時也用到了.NETFramework中的,ADO.NET,WMImanagement,XML。其核心是一個由VB.NET寫的程序以及它的兩個配置文件,配置文件為XML格式,該程序按IP掃描網絡,得到每個系統的服務的狀態,如果IP地址沒有對應系統,則忽略該IP,針對沒有安裝服務或服務停止的系統我們在另一個線程中運行NBTSTAT命令,得到其機器名,用戶名,MAC地址域等信息,以便我們找到機器解決問題。
其次為了保存VB.NET掃描系統服務的結果,我們需要一個很小的數據庫MS-Access或MS-SQLServer都可以,本文使用SQL2000。最后為了呈現出掃描的結果,以便我們采取行動,這里我們使用網頁的形式把數據庫中的結果展現出來。
該程序使用兩個XML格式的配置文件,當程序啟動時會讀入這些配置。其中一個文件定義了需要掃描的網段,包括排除在外的地址段。另一個文件定義了連接數據庫的信息,以及數據表的定義。這兩個文件的內容如下:
- <IPLIST>
- <IPLANID="192.168.100."><EXPL=”1”H=”30”/></IP>
- <IPLANID="192.168.101."/>
- <IPLANID="192.168.102."/>
- <IPLANID="192.168.103."/>
- <IPLANID="192.168.104."><EXPL=”1”H=”40”/></IP>
- </IPLIST>
該文件定義將要掃描5個網段,其中兩個網段有些地址需要排除在外(分配給打印機等設備),對于192.168.100段,我們排除從1到30,對于192.168.104段我們排除1到40。
- <DBINFO>
- <SERVER>DBServer</SERVER>
- <DATABASE>DB</DATABASE>
- <UID>REPORT</UID>
- <PWD>REPORT</PWD>
- <SERVICETABLE=”SERVICE”>SERVICE</SERVICE>
- </DBINFO>
該文件定義了連接數據庫所需的信息。
- TAG
- Meaning
- <SERVER>
- SCANSERVICE數據庫的服務器名
- <DATABASE>
- SCANSERVICE數據庫名
- <UID>
- 用于更新SCANSERVICE數據庫的數據庫用戶名
- <PWD>
- 用于更新SCANSERVICE數據庫的數據庫用戶的密碼
- <SERVICE>
該TAG的inner定義了我們希望掃描的Service的名字,這里我們假定希望掃描服務名為SERVICE
該TAG的屬性定義了數據庫中表名,該表用于保存VB.NET掃描系統服務的結果。