OK - so did some digging on this today. One of the disk space monitors was failing to collect WMI data. I knew that the code was pretty much right out of KOM, so I copied the raw KOM source to the machine and damned if it didn't work!
 Code:
Break On
$oWMIService = GetObject("winmgmts:\\.\root\cimv2")
$cItems = $oWMIService.ExecQuery("Select * from Win32_Volume",,48)
For each $oItem in $cItems
  "Capacity: " + $oItem.Capacity ?
  "Caption: " + $oItem.Caption ?
Next
The only change from direct KOM output was hard coding the "." and changing the 3-char variable prefix to a single char.

So - what's different from my code???

Well, good code practices , for one.. I declare my vars and set strict options. I inserted the following after the Break On statement:
 Code:
Dim $Rc, $objWMIService, $colItems, $objItem, $Item

$Rc = SetOption('Explicit', 'On')
$Rc = SetOption('WrapAtEOL', 'On')
$Rc = SetOption('NoVarsInStrings', 'On')
$Rc = SetOption('NoMacrosInStrings', 'On')
$Rc = SetOption('WOW64FileRedirection', 'Off')
$Rc = SetOption('WOW64AlternateRegView', 'Off')
Sure enough, the @SERROR now reports "Invalid Syntax" and the script dies with a totally misleading error:
 Code:
ERROR : expected ')'!
Script: C:\KRMMwork\Bin\z.bms
Line  : 14
Eliminating the WOW64FileRedirection option resolved the problem. WTH??

Any thoughts on this? This issue only exists on Server 2008, works fine on Server 2008R2 and higher.

Glenn
_________________________
Actually I am a Rocket Scientist! \:D