Here is some simple recursive code to search for methods/properties in the WMI.
Much can be improved, but for now, it is a start.
########################################################################################## ## CHANGE LOG ######################### ## ## v0.1 ## - first version ########################################################################################## filter seek_properties { $_ | Get-Member | select-object name | property $_; } filter property ($obj) { if ((++$global:i % 100000) -eq 0) { echo $i;} if ($obj.($_.name) -match 'YOUR SEARCH STRING') { echo "Object $($obj.__path) contains in property $($_.name): $($obj.$($_.name))"; echo $obj; echo '-----------------------------------------------'; } } function start_search ($namespace) { Get-WmiObject -Namespace $namespace -list * | foreach { if ($_.__CLASS -eq "__NAMESPACE") { Get-WmiObject -Namespace $namespace $_.__CLASS | foreach { start_search "$($_.__NAMESPACE)\$($_.Name)"; } } else { echo "$namespace`: $($_.__CLASS)"; Get-WmiObject -Namespace $namespace $_.__CLASS | seek_properties; } } } $global:i = 0; start_search "ROOT"; |
This script can take quite some time to finish…