views:

346

answers:

2

The class is documented in

http://msdn.microsoft.com/en-us/library/aa375050%28VS.85%29.aspx

And from this page it seems it's not an abstract class:

http://msdn.microsoft.com/en-us/library/aa375084%28VS.85%29.aspx

But whenever I run the code below I get an "Invalid Class" exception in ManagementObjectSearcher.Get(). So, does this class exist or not?

ManagementScope scope;
ConnectionOptions options = new ConnectionOptions();
options.Username = tbUsername.Text;
options.Password = tbPassword.Password;
options.Authority = String.Format("ntlmdomain:{0}", tbDomain.Text);
scope = new ManagementScope(String.Format("\\\\{0}\\root\\RSOP", tbHost.Text), options);
scope.Connect();
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT * FROM RSOP_RegistryPolicySetting"));
foreach (ManagementObject queryObj in searcher.Get())
{
    wmiResults.Text += String.Format("id={0}\n", queryObj["id"]);
    wmiResults.Text += String.Format("precedence={0}\n", queryObj["precedence"]);
    wmiResults.Text += String.Format("registryKey={0}\n", queryObj["registryKey"]);
    wmiResults.Text += String.Format("valueType={0}\n", queryObj["valueType"]);
}

In the first link above, it lists as a requirement something called a "MOF": "Rsopcls.mof". Is this something I should have but have not? How do I obtain it? Is it necessary in the querying machine or the queried machine? Or both?

I do have two copies of this file:

C:\Windows>dir rsop*.mof /s
 Volume in drive C has no label.
 Volume Serial Number is 245C-A6EF

 Directory of C:\Windows\System32\wbem

02/11/2006  05:22           100.388 rsop.mof
               1 File(s)        100.388 bytes

 Directory of C:\Windows\winsxs\x86_microsoft-windows-grouppolicy-base-mof_31bf3856ad364e35_6.0.6001.18000_none_f2c4356a12313758

19/01/2008  07:03           100.388 rsop.mof
               1 File(s)        100.388 bytes

     Total Files Listed:
               2 File(s)        200.776 bytes
               0 Dir(s)   6.625.456.128 bytes free
A: 

Duh. I was using the wrong namespace. It was root\RSOP\Computer.

JCCyC
A: 

I tried your code on Vista Business x64 using root\rsop\computer and never receive a return. Also, no errors either... Help....

Pointeman