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