从远程计算机

时间:2015-05-01 17:28:16

标签: c# .net active-directory registry

我正在尝试确定用户从远程计算机建立的最后一个域连接,无论该计算机当前是否已连接到该域。

我能得到的最接近的是使用与此类似的System.DirectoryServices.ActiveDirectory和System.DirectoryServices.AccountManagement命名空间:

Domain d = Domain.GetComputerDomain();
PrincipalContext c = new PrincipalContext(ContextType.Domain, d.Name);
UserPrincipal uc = UserPrincipal.FindByIdentity(c, "johndoe");

然后使用UserPrincipal的LastLogon属性。

这个工作正常,只要运行我的应用程序的机器连接到域。如果不是,Domain.GetComputerDomain()返回null,我运气不好(即使我将域名硬编码到PrincipalContext构造函数,它会在未连接到域时抛出异常)。是否有其他AD属性或注册表项在与我可以使用的服务器建立AD连接时本地存储在远程计算机上?

以下描述LSA Cache的链接似乎很有希望,但据我所知,没有任何关于缓存的域连接时间戳。

Determine User Active Directory Groups from Local Machine off Network

0 个答案:

没有答案