dotnet / dotnet/runtime

ManagementEventWatcher.Start throws an exception when a power plan doesn't have a name

Open
#125,296 2 comments 0 reactions 0 assignees View on GitHub
area-System.Management help wanted
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

### Description

I've created a System.Management.ManagementEventWatcher instance that I'm using to monitor for creation of new power plans. But, if a power plan exists that does not have a name, calling Start throws System.IO.FileNotFoundException.

### Reproduction Steps

Export the standard Balanced power plan, delete it, reimport, but do not give it a name.

powercfg /export %TEMP%\Balanced.pow 381b4222-f694-41f0-9685-ff5bb260df2e
powercfg /delete 381b4222-f694-41f0-9685-ff5bb260df2e
powercfg /import %TEMP%\Balanced.pow 381b4222-f694-41f0-9685-ff5bb260df2e

Then, run this code:

ManagementEventWatcher watcherCreate = new ManagementEventWatcher (
new ManagementScope ("\\root\\cimv2\\power"),
new WqlEventQuery (
"__InstanceCreationEvent",
new TimeSpan (0, 0, 5),
"TargetInstance isa \"Win32_PowerPlan\""
)
);
watcherCreate.Start (); // BOOM!

### Expected behavior

Start the watcher without throwing an exception. i.e. should not care if a power plan has a name or not.

### Actual behavior

Throws System.IO.FileNotFoundException

### Regression?

Dunno. Probably not.

### Known Workarounds

None

### Configuration

.NET 10.0.3
Windows 10 19045.6937
x64

### Other information

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.