随着Azure AD域加入的出现,一些现有答案可能已过时或不完整。
获取当前AD域状态的最准确/最可靠的方法是什么,以使我能够确定它是Azure AD,Premise AD还是任何其他可能的设计(本机UNIX Kerberos)来进行?
我发现的一些键包括:
除了调用win32 API DsRoleGetPrimaryDomainInformation外,我还可以检查注册表。
与验证计算机信任有关的任何其他信息,与域控制器的连接“质量”都是有用的。
答案 0 :(得分:1)
这里似乎有两个问题:
无论如何,我有第一个问题的解决方案。您标记了c#
,因此如果使用的是Domain.GetComputerDomain
,则可以使用。将其放在try
/ catch
块中,因为如果计算机未加入域,它将抛出ActiveDirectoryObjectNotFoundException
异常。
但是,如果它已加入域,则会返回一个Domain
对象。这将为您提供有关域的一些信息,例如DomainMode
。我没有访问加入AzureAD域的计算机的权限,因此我不知道在那种情况下该信息的外观,但是可能有所不同。
否则,要获取有关该域的更详细信息,您可能需要使用该域的Name
并尝试从该域本身读取更多信息。