The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

dallen16 (1) [Avatar] Offline
I'm trying to figure out how to use 'SWbemRefresher' to monitor local network traffic (refresh WMI data) from within a Powershell script (which is also scripting IE to click through a web application.)

The classic VBscript solution starts as follows...


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & " ootcimv2")
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colItems = objRefresher.AddEnum (objWMIService, "Win32_PerfFormattedData_TCPIP_NetworkInterface").objectSet

Translated to Powershell should look something like the following... but the first line is "invalid" because -class wants one of the 900+ WMI class names.


$objWMIService = get-wmiobject -class "winmgmts" -namespace "rootcimv2" -computername '.'
$objRefresher = new-object -com "WbemScripting.SWbemRefresher"
$colItems = $objRefresher.AddEnum($objWMIService, "Win32_PerfFormattedData_TCPIP_NetworkInterface").objectSet


I can't figure out which wmiobject class to specify... I've tried a few of the more obvious looking class names ("Win32_Service", "CIM_Service", "Win32_Perf", ...) but these either hang on the get-wmiobject call or generate an exception with the AddEnum call like the following.

Exception calling "AddEnum" with "2" argument(s): "Type mismatch.
(Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))"

And I saw another cmdlet that looked promising "get-service" ... for which there is a "winmgmt" service...but no "winmgmts" service... but this doesn't seem to work either.

Or is there another way altogether to accomplish the same thing?

Any help greatly appreciated!!!


.... Dewey