C# 使用Microsoft.GroupPolicy获取GPO信息
我们正在努力获取我们计算机的GPO信息。因此,我们希望使用c#-而不是gpresult.exe(因为它可以在系统上下文中执行…) 嗯,我发现有一个DLL Microsoft.GroupPolicy.Management.DLL可以用C#导入。听起来太简单了:C# 使用Microsoft.GroupPolicy获取GPO信息,c#,gpo,C#,Gpo,我们正在努力获取我们计算机的GPO信息。因此,我们希望使用c#-而不是gpresult.exe(因为它可以在系统上下文中执行…) 嗯,我发现有一个DLL Microsoft.GroupPolicy.Management.DLL可以用C#导入。听起来太简单了: using Microsoft.GroupPolicy; [...] GPRsop rsop = new GPRsop(RsopMode.Logging, "root\\RSOP\\Computer"); rsop.LoggingCom
using Microsoft.GroupPolicy;
[...]
GPRsop rsop = new GPRsop(RsopMode.Logging, "root\\RSOP\\Computer");
rsop.LoggingComputer = "MyComputer";
rsop.LoggingUser = "domain\\user";
rsop.LoggingMode = LoggingMode.Computer;
rsop.CreateQueryResults();
rsop.GenerateReportToFile(ReportType.Xml, "C:\\Temp\\test.xml");
作为输出文件,我得到以下文件:
<?xml version="1.0" encoding="utf-16"?>
<Rsop xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.microsoft.com/GroupPolicy/Rsop">
<ReadTime>2013-05-06T13:28:17.1529206Z</ReadTime>
<DataType>LoggedData</DataType>
</Rsop>
2013-05-06T13:28:17.1529206Z
LoggedData
这里有谁曾经使用过这个DLL,可以给我一些提示吗?
提前谢谢
干杯您应该在生成报告之前执行
rsop.CreateQueryResults()
。这需要设置LoggingMode
、LoggingUser
和LoggingComputer
属性。听起来不错,但每当我想设置LoggingMode
、LoggingUser
或LoggingComputer
时,我都会得到一个“超出范围”的异常,并且“参数异常未处理”。没有问题。哪一行抛出异常?你有没有单独尝试过,看看他们是全部失败还是只有一个失败?离家前我只剩下15分钟了,但如果你能给我这些信息,我可以在回来后检查一下。所有行都失败:rsop.LoggingComputer=“MyComputer”;rsop.LoggingUser=“域\\用户”;rsop.LoggingMode=LoggingMode.Computer;rsop.CreateQueryResults()代码>
using GPMGMTLib;
GPM groupPolicyManagement = new GPM();
IGPMConstants groupPolicyConstants = groupPolicyManagement.GetConstants();
GPMRSOP rsop = groupPolicyManagement.GetRSOP(groupPolicyConstants.RSOPModeLogging, null, 0);
rsop.LoggingComputer = "MyComputer";
rsop.LoggingUser = "domain\\user";
rsop.CreateQueryResults();
rsop.GenerateReportToFile(groupPolicyConstants.ReportXML, "C:\\Temp\\test.xml");