Yeah, that WMI class does the job for privileges set by GPO (not local
policy). Here's a quick C# method to illustrate.
public void RSOP_UserPrivilegeRight_Test() {
string hostName = @"\\.\root\rsop\computer";
string query = "select UserRight,AccountList,Precedence from
RSOP_UserPrivilegeRight";
try {
ObjectQuery wmiQuery = new ObjectQuery(query);
ManagementScope wmiMgmtScope = new ManagementScope(hostName);
wmiMgmtScope.Connect();
if(wmiMgmtScope.IsConnected) {
ManagementObjectSearcher searcher = new
ManagementObjectSearcher(wmiMgmtScope, wmiQuery);
using(ManagementObjectCollection mgmtColl = searcher.Get()) {
string header = String.Format("\n{0,25}{1,25}\n{2}\n", "Privilege",
Console.WriteLine(header);
foreach(ManagementObject item in mgmtColl) {
Console.Write("{0,25}", item["userRight"].ToString());
foreach(string account in item["AccountList"] as string[]) {
Console.Write("{0,-25}{1,-25}\n", "", account);
}
}
}
} else {
Console.WriteLine("\nNot bound to a namespace. Exiting\n");
}
} catch (ManagementException e) {
Console.WriteLine("\n{0}\n{1}\n{2}\n", e.ErrorCode, e.Message,
e.StackTrace);
} catch (Exception e) {
Console.WriteLine("\n{0}\n", e.ToString());
}
}
I'm unsure as to how you can pull the local settings yet...
--
Paul Williams
Microsoft MVP - Windows Server - Directory Services
http://www.msresource.net | http://forums.msresource.net