Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for executing WMI methods #104
Add support for executing WMI methods #104
Changes from 2 commits
83c2452
f477df4
f5e5cc2
9c83d3c
2d8e2cc
c7d61b5
1edeaa9
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this be just
WMIResult<Out>
? The user can either setOut = ()
, or set it to something, so they should always know what's the right return typeThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done! In my implementation, I added the bound that if the function returns nothing, the only output type that will be accepted is the unit type. I think this is a reasonable compromise, but let me know if you think otherwise.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Running locally, this seems to be flaky for some reason:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran it a few more times on my machine and was able to reproduce this. I'm not sure what's causing it, but the process create method is failing with the generic error code 8 ("unknown failure").
This seems to be happening totally unpredictably, so I don't believe it's tied to this implementation, but I haven't had the chance to test whether it occurs with WMI bindings in other languages. We could ignore the test, or rework it to use another WMI method instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On my machine, even the VBS example from https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/create-method-in-class-win32-process#examples fails randomly with 8/9/21.
But surpassingly, only for
notepad.exe
. Switching topowershell.exe
seems to work consistently.