all groups > dotnet clr > april 2007 >
You're in the

dotnet clr

group:

Access WMI in C# ?


Access WMI in C# ? Henry
4/7/2007 11:58:03 AM
dotnet clr:
Below is the code I am trying to use in a console application, each time I
run it I get an Management error Illegal Class error. I have traced the
error to the \"Win32_Process\" line, apparently the wmi path is incorrect.
Tried to run the app on both xp and vista with the same error. Could
someone suggest how I might correct this wmi path variable???

Thanks

Henry


+++++++++++++++++++++++++++++++++++++++++++++++++++++

public static void WriteToEventLog()
{
WqlEventQuery DemoQuery = new
WqlEventQuery("_InstanceCreationEvent", new TimeSpan(0, 0, 1),
"TargetInstance isa \"Win32_Process\" ");

ManagementEventWatcher DemoWatcher = new
ManagementEventWatcher();
DemoWatcher.Query = DemoQuery;
DemoWatcher.Options.Timeout = new TimeSpan(0, 0, 30);

Console.WriteLine("Open an application to trigger an Event.");

ManagementBaseObject e = DemoWatcher.WaitForNextEvent();

EventLog DemoLog = new EventLog("Chap10Demo");
DemoLog.Source = "Chap10Demo";
String EventName =
((ManagementBaseObject)e["TargetInstance"])["Name"].ToString();
Console.WriteLine(EventName);
DemoLog.WriteEntry(EventName, EventLogEntryType.Information);

DemoWatcher.Stop();
}


+++++++++++++++++++++++++++++++Error follows

Open an application to trigger an Event.

Unhandled Exception: System.Management.ManagementException: Invalid class
at
System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStat
us errorCode)
at System.Management.ManagementEventWatcher.WaitForNextEvent()
at ManagementEvents1.Program.WriteToEventLog() in
I:\Projects\ManagementEvent
s1\ManagementEvents1\Program.cs:line 29
at ManagementEvents1.Program.Main(String[] args) in
I:\Projects\ManagementEve
nts1\ManagementEvents1\Program.cs:line 14
Press any key to continue . . .

--
~
Most good judgment comes from experience.
Most experience comes from bad judgment.
~I'm leaning towards bad judgment.~

Re: Access WMI in C# ? Chris Mullins [MVP]
4/9/2007 11:43:04 AM
[Willy doing WMI Stuff]

You always have the coolest WMI stuff handy. Have you written a FAQ on it
anywhere, or archived all your examples?

--
Chris Mullins, MCSD.NET, MCPD:Enterprise, Microsoft C# MVP
http://www.coversant.com/blogs/cmullins

Re: Access WMI in C# ? Willy Denoyette [MVP]
4/9/2007 3:44:47 PM
[quoted text, click to view]





Notice the space at the end of ..
"TargetInstance isa \"Win32_Process\" ");

should be...
"TargetInstance isa \"Win32_Process\"");

Willy.

Re: Access WMI in C# ? Henry
4/9/2007 7:35:58 PM
Well, I wish it was that easy, corrected the space as you suggested, here is
the error...
It really seems to be a problem with the watcher, but what do I know???

Henry
[quoted text, click to view]
Open an application to trigger an Event.

Unhandled Exception: System.Management.ManagementException: Invalid class
at
System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStat
us errorCode)
at System.Management.ManagementEventWatcher.WaitForNextEvent()
at ManagementEvents1.Program.WriteToEventLog() in
I:\Projects\ManagementEvent
s1\ManagementEvents1\Program.cs:line 29
at ManagementEvents1.Program.Main(String[] args) in
I:\Projects\ManagementEve
nts1\ManagementEvents1\Program.cs:line 14
Press any key to continue . . .

[quoted text, click to view]
Re: Access WMI in C# ? Willy Denoyette [MVP]
4/10/2007 12:00:00 AM
[quoted text, click to view]

Sorry missed this one...

_InstanceCreationEvent
should be:
__InstanceCreationEvent

notice the double underscore!

Willy.
Re: Access WMI in C# ? Willy Denoyette [MVP]
4/10/2007 12:00:00 AM
[quoted text, click to view]


Chris, a have an archive of samples, I just have to clean them up and add some comments, I
will save some time to do this and keep you informed here.
As for the FAQ, I keep some inter-company kind of Knowledge Base articles, but I'm afraid I
can't publish them as they are, I will see what I can do to turn this stuff into some
publically available FAQ .

Willy.

Re: Access WMI in C# ? majlathm NO[at]SPAM gmail.com
4/10/2007 1:14:22 AM
[quoted text, click to view]

If you want to play around with WMI (find right syntax etc.) try to
use WMI Creator:

http://www.microsoft.com/downloads/details.aspx?familyid=2cc30a64-ea15-4661-8da4-55bbc145c30e&displaylang=en

Marian
Re: Access WMI in C# ? Henry
4/10/2007 9:19:59 AM
Yes, thanks for the excellent help, and I did find the WMI Creator, it is a
great help for finding proper syntax...

Again Thanks

Henry

[quoted text, click to view]
AddThis Social Bookmark Button