[英]How can I tell if my program is running on a Domain Controller?
使用C#有一种方法可以判断我的程序运行的计算机是否是域控制器?
更短的解决方案,只需检查注册表:
const string basename = "HKEY_LOCAL_MACHINE\\";
const string keyname = "SYSTEM\\CurrentControlSet\\Control\\ProductOptions";
string result = (string) Registry.GetValue(basename + keyname, "ProductType", "WinNT");
如果结果是“ WinNT ”,那么它就是客户端机器。 如果是“ ServerNT ”,则服务器和“ LanmanNT ”是域控制器。
更多信息: https : //technet.microsoft.com/en-us/library/cc782360%28v=ws.10%29.aspx
枚举DC( 此处的代码段) - 在结果列表中检查您的服务器名称:
public static ArrayList EnumerateDomainControllers()
{
ArrayList alDcs = new ArrayList();
Domain domain = Domain.GetCurrentDomain();
foreach (DomainController dc in domain.DomainControllers)
{
alDcs.Add(dc.Name);
}
return alDcs;
}
这是我想出的一个完整的功能,回答这个问题。
public static bool ThisMachineIsADomainController()
{
Domain domain = Domain.GetCurrentDomain();
string thisMachine = String.Format("{0}.{1}",Environment.MachineName, domain.ToString());
//Enumerate Domain Controllers
List<string> allDcs = new List<string>();
foreach (DomainController dc in domain.DomainControllers)
{
allDcs.Add(dc.Name);
}
return allDcs.Contains(thisMachine);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.