【发布时间】:2016-04-25 16:06:45
【问题描述】:
我正在使用 LOGON_TYPE_NEW_CREDENTIALS 和 LOGON32_PROVIDER_WINNT50 调用 LogonUser,以让我的线程模拟另一个域中的用户。我能够连接到远程文件共享和其他一切都可以进入不受信任的域。
我现在遇到的问题是,当我使用 GPMGMTLib 生成 GPO 报告时,我在调用 GenerateReport() 时不断收到异常“HRESULT: 0x80072020”。
using GPMGMTLib;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace CrossDomainWork
{
class Program
{
static void Main(string[] args)
{
ImpersonationContext context = new ImpersonationContext("ourdmzdomain.com", "dmzuser", "dmzpassword");
context.Start();
GPM gpm = new GPM();
var constants = gpm.GetConstants();
var domain = gpm.GetDomain("ourdmzdomain.com", "", constants.UseAnyDC);
var gpo = domain.GetGPO("{31B2F340-016D-11D2-945F-00C04FB984F9}");
object missing = Type.Missing;
var result = gpo.GenerateReport(GPMReportType.repHTML, ref missing, out missing).Result;
context.Stop();
}
}
}
【问题讨论】:
-
那是ERROR_DS_OPERATIONS_ERROR,非常通用,排查问题没用。尝试在机器的应用程序日志中找到更具体的内容。
-
事件查看器中的应用程序日志没有给我任何有用的信息。如果我运行该应用程序并让它指向一个受信任的域,我就没有同样的问题并且运行良好。
标签: c# .net active-directory