While working on SQL Server management tool for mobile devices - Siccolo, I created a simple applet to be able to browse computers on the local network within a domain and retrieve additional information (such as list of users, services). See more at Articles from Siccolo! The code presented allows to build simple network browser
.NET allows to retrieve almost any information about local network by using WMI - Windows Management Instrumentation - service with ManagementObjectSearcher class and in conjunction with Active Directory Service Interfaces (ADSI) - Active Directory hierarchy. The code is broken into several methods:
ManagementObjectSearcher
// VB.NET // ... Public Function GetLocalComputerInfo() As Boolean Dim query As <CODE>ManagementObjectSearcher</CODE> Dim queryCollection As <CODE>ManagementObjectCollection</CODE> Dim query_command As String = "SELECT * FROM Win32_ComputerSystem" Dim msc As ManagementScope = New ManagementScope("root\cimv2") Dim select_query As SelectQuery = New SelectQuery(query_command) query = New ManagementObjectSearcher(msc, select_query) queryCollection = query.Get() Dim management_object As <CODE>ManagementObject</CODE> For Each management_object In queryCollection m_local_domain_name = management_object("Domain") m_local_computer_name = management_object("Name") Next management_object Return True End Function ...
// VB.NET // ... Public Function GetComputersInfoCollection(ByVal domain As String) _<BR> As DirectoryEntry Dim domainEntry As DirectoryEntry = New DirectoryEntry("WinNT://" _<BR> + domain) domainEntry.Children.SchemaFilter.Add("computer") Return domainEntry End Function ...
// VB.NET // ... Public Function GetUsersInfoCollection(ByVal domain As String) _ <BR> As ManagementObjectCollection Dim query As ManagementObjectSearcher Dim queryCollection As ManagementObjectCollection Dim msc As ManagementScope = New ManagementScope("root\cimv2") Dim query_command As String = _ "SELECT * FROM Win32_UserAccount WHERE Domain=" & _ Chr(34).ToString() & domain & Chr(34).ToString() 'Win32_UserAccount: 'see http://msdn.microsoft.com/library/default.asp?<BR> 'url=/library/en-us/wmisdk/wmi/win32_useraccount.asp 'class Win32_UserAccount : Win32_Account '{ ' uint32 AccountType; ' string Caption; ' string Description; ' boolean Disabled; ' string Domain; ' string FullName; ' datetime InstallDate; ' boolean LocalAccount; ' boolean Lockout; ' string Name; ' boolean PasswordChangeable; ' boolean PasswordExpires; ' boolean PasswordRequired; ' string SID; ' uint8 SIDType; ' string Status; '}; ' Dim select_query As SelectQuery = New SelectQuery(query_command) query = New ManagementObjectSearcher(msc, select_query) queryCollection = query.Get() Return queryCollection End Function ...
// VB.NET // ... Public Function GetServicesInfoCollection(ByVal computer_name _<BR> As String) _<BR> As ManagementObjectCollection Dim query As ManagementObjectSearcher Dim queryCollection As ManagementObjectCollection Dim msc As ManagementScope = New ManagementScope("\\" &_<BR> computer_name & "\root\cimv2") Dim query_command As String = "SELECT * FROM Win32_Service" 'Win32_UserAccount: 'see http://msdn.microsoft.com/library/en-us/wmisdk/wmi/<BR> 'win32_service.asp?frame=true<BR> ' ' class Win32_Service : Win32_BaseService '{ ' boolean AcceptPause; ' boolean AcceptStop; ' string Caption; ' uint32 CheckPoint; ' string CreationClassName; ' string Description; ' boolean DesktopInteract; ' string DisplayName; ' string ErrorControl; ' uint32 ExitCode; ' datetime InstallDate; ' string Name; ' string PathName; ' uint32 ProcessId; ' uint32 ServiceSpecificExitCode; ' string ServiceType; ' boolean Started; ' string StartMode; ' string StartName; ' string State; ' string Status; ' string SystemCreationClassName; ' string SystemName; ' uint32 TagId; ' uint32 WaitHint; '}; Dim select_query As SelectQuery = New SelectQuery(query_command) query = New ManagementObjectSearcher(msc, select_query) queryCollection = query.Get() Return queryCollection End Function ...
If you would like to read more - please take a look at Siccolo - Free Mobile Management Tool For SQL Server and more articles at Development Articles from Siccolo!
no improvements so far. nearly perfect.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
General News Suggestion Question Bug Answer Joke Rant Admin
Math Primers for Programmers