NETBIOS etki alanı adını tam nitelikli bir Active Directory etki alanı adı almak bazen sıkıcı bir iştir. here iyi bir yanıt buldum.Karmaşık bir ortamda FQDN kullanarak NETBIOS etki alanı adı nasıl edinilir
Birden çok ormanı olan bir ortamda, bu yaklaşım, PC'yi sorguladığınız ormanda değilse işe yaramayacaktır. Bunun nedeni, LDAP://RootDSE
bilgisayarın etki alanıyla ilgili bilgileri sorgulayacaktır.
Bazı sorular sorabilir: neden bu kadar karmaşık?
ActiveDirectory.Domain.GetComputerDomain().Name;
Ya da sadece kullanıcının alan adını almak: Tamamen
Environment.GetEnvironmentVariable("USERDOMAIN");
veya
Environment.UserDomainName;
ANCAK NETBIOS alanı adı olabilir şey sadece tarafından alınan ilk noktadan öncesi adı kullanmak farklı ve siz veya bilgisayarınız farklı bir alanda veya ormanda olabilir! Yani bu yaklaşım sadece basit bir ortamda kullanılabilir. Çapraz etki alanı sorgularına izin vermek için yalnızca küçük bir değişiklik yapılması gerekir. Bu güven ilişkisi var!
private string GetNetbiosDomainName(string dnsDomainName)
{
string netbiosDomainName = string.Empty;
DirectoryEntry rootDSE = new DirectoryEntry(string.Format("LDAP://{0}/RootDSE",dnsDomainName));
string configurationNamingContext = rootDSE.Properties["configurationNamingContext"][0].ToString();
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://cn=Partitions," + configurationNamingContext);
DirectorySearcher searcher = new DirectorySearcher(searchRoot);
searcher.SearchScope = SearchScope.OneLevel;
searcher.PropertiesToLoad.Add("netbiosname");
searcher.Filter = string.Format("(&(objectcategory=Crossref)(dnsRoot={0})(netBIOSName=*))", dnsDomainName);
SearchResult result = searcher.FindOne();
if (result != null)
{
netbiosDomainName = result.Properties["netbiosname"][0].ToString();
}
return netbiosDomainName;
}
Sen Q & A biçimi veya bu yazmalıyım (muhtemelen) sizin Geliştirilmiş cevap orijinal soruyla gitmeli. –
Düzenleme isteğim reddedildi çünkü "Düzenleme, orijinal yayında çok fazla değişiyor" – Daro
Bunu ayrı bir yanıt olarak gönderin. Daha fazla temsilcisi olan biri daha sonra onları birleştirebilmelidir. –