如何检查计算机的域帐号是否无效(信任被破坏)?

我必须承认其domain accounts不再有效的笔记本电脑。

由于几个问题,可能会发生无效的域帐户。 大多数情况下,客户端从备份恢复,然后域帐户不再有效

在这种情况下,行为是:

  • 用户的login工作通过cached credentials
  • 用户has access to shares服务器上的has access to shares和文件(NTLM)
  • 通过Kerberos does not work访问Kerberos does not work

有没有可能检查电脑帐户的有效性?

有了这个代码,我可以找到invalid computer domain accounts

 try { string sMyComputer = "MyComputer" Domain computerDomain = Domain.GetComputerDomain(); // may! throw ActiveDirectoryObjectNotFoundException if computer account is invalid string sComputerDomain = computerDomain.Name; NTAccount acc_machine = new NTAccount(sComputerDomain, sMyComputer + "$"); SecurityIdentifier sid = (SecurityIdentifier)acc_machine.Translate(typeof(SecurityIdentifier)); // always throws an SystemException if computer account is invalid } catch { // something is wrong with the account } 
  • sMyComputer +“$”是帐户名称如何存储在活动目录中
  • 我的经验是,第一个例外是大多不抛出,返回值是计算机曾经工作的计算机帐户的域的正确名称
  • 如果computeraccount现在无效,则总是抛出第二个异常(SystemException)。 errocode是80004005.(我期待一个IdentityNotMappedException)

编辑:
更正了代码中的错误