|
-
Feb 5th, 2010, 04:46 PM
#1
Thread Starter
Frenzied Member
[RESOLVED] Retrieve networked computer information without WMI?
Hi guys.
I'm working with C#.
I'm writing a tool that will get information about a target system on a network but the issue is I really would like to avoid WMI if possible since I know how slow it can be. Are there any other methods available to get, say, the Windows name and version without WMI for a remote system?
Cheers.
-
Feb 5th, 2010, 07:06 PM
#2
Re: Retrieve networked computer information without WMI?
You have to consider that WMI does this based on running the fairly heavyweight WMI Service in each PC. When you use WMI to retrieve information about a remote machine, the info is obtained by asking the WMI Service over on that machine.
There is very little information directly exposed by Windows, and most of that is even obtained by querying the remote machine's Server Service (MS Networking: File & Print Sharing, RPC, etc.).
My point is that you'd have to write some custom service and install it on each remote machine in order to create a WMI substitute. Lots of these exist in the market already though. Often they'll call the service an "agent" for the central management console application.
Last edited by dilettante; Feb 5th, 2010 at 07:09 PM.
-
Feb 6th, 2010, 05:08 AM
#3
Thread Starter
Frenzied Member
Re: Retrieve networked computer information without WMI?
I thought as much. I was quite aware of how WMI worked - I was just hoping there would be an API out there that gave the same level of information.
I guess I can use regular API calls for local machines then switch to WMI when I need remote info. That should solve some of the issues.
Thanks for your help!
-
Feb 6th, 2010, 09:18 AM
#4
Re: [RESOLVED] Retrieve networked computer information without WMI?
The only other idea that comes to mind is to write a program that automates runs of PsExec on the remote machines.
The PsExec runs would run some custom program on the remote machine to scan the machine and capture info, then write it to StdOut. The program controlling the PsExec runs would capture the StdOut of PsExec (which gets a relay of the session output text) and then parse that for data and act on it.
The difference is that PsExec can be used without designing and preinstalling a custom Service on each monitored machine. PsExec uses MS Networking features to inject a temporary service on the remote machine, and can then inject and run your info harvester agent program.
-
Feb 6th, 2010, 09:37 AM
#5
Thread Starter
Frenzied Member
Re: [RESOLVED] Retrieve networked computer information without WMI?
That would require installing software on the target machine, since this program is a remote System Information Utility that would be impractical.
Were this program type different then it wouldn't be an issue but as it stands WMI is probably the best option I think.
-
Feb 6th, 2010, 10:01 AM
#6
Re: [RESOLVED] Retrieve networked computer information without WMI?
Well, the PsExec approach specifically avoids installing software ahead of time. When you run the "client" it installs/runs/uninstalls the software (including the service component of PsExec itself) on the target systems dynamically.
I'm not recommending it, just clarifying a point.
-
Feb 6th, 2010, 10:04 AM
#7
Thread Starter
Frenzied Member
Re: [RESOLVED] Retrieve networked computer information without WMI?
Very well. Thanks for the information
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|