Ok.. after further testing and a note from Shay (
http://blogs.microsoft.co.il/blogs/...natic/)... I found that the timeout property is specifically for enumerating a collection. So, depending on the kind of timeout that you are experiencing, this may or may not work.
There is another setting, $WMI.psbase.scope.options.timeout, that could affect the enumeration results.
You could also try using the [WMISearcher] accelerator. You can set the timeout option on that in several places. Additionally, there is a property under the Options property of the WMISearcher called ReturnImmediately. By default it should be set to true and should keep the query from hanging. I could not find the equivalent in the WMIClass accelerator.
One:
$searcher = [WMISearcher]
$searcher.options.timeout = '0:0:2' # 2 seconds, string is cast to a timespan object/alternative to using ticks
Two:
$searcher = [WMISearcher]
$searcher.scope.options.timeout = '0:0:2'
The fourth option is not PowerShell specific, but might help. On the target machine, run dcomcnfg.exe and navigate to the Component Services->My Computer. Right click and choose properties. On the options tab, there is a timeout (in seconds) for DCOM transactions. Fiddle with that at your own risk. :)