我的计算机在域(Active Directory)中,我需要动态获取域名。我在互联网上找到以下代码:
SelectQuery query = new SelectQuery("Win32_ComputerSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
{
foreach (ManagementObject mo in searcher.Get())
{
if ((bool)mo["partofdomain"])
{
this.Domain = mo["domain"].ToString();
break;
}
}
}
它完全可以按我的要求运行,并且可以按我的要求返回完全的域名(当我以管理员身份登录时)。如果用户不是域管理员,则存在
Access denied
异常。有人与非域管理员用户一起知道如何获得域吗?
注意:我已经在Internet
System.Environment.UserDomainName;
上找到了此解决方案,但它只给了我一部分域名。IE。我的域名是:
something.domain.com
并且UserDomainName
仅返回something
。 最佳答案
为什么要使用WMI?您不能使用标准的.NET功能吗?
System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;