पूरी तरह से योग्य सक्रिय निर्देशिका डोमेन नाम से नेटबीओएस डोमेन नाम प्राप्त करना कभी-कभी एक कठिन कार्य होता है। मुझे एक अच्छा जवाब मिला here।एक जटिल पर्यावरण में FQDN का उपयोग कर नेटबीओएसओ डोमेन नाम कैसे प्राप्त करें
कई जंगलों वाले वातावरण में यह दृष्टिकोण तब तक काम नहीं करेगा जब पीसी जंगल में नहीं है जो आप पूछ रहे हैं। ऐसा इसलिए है क्योंकि LDAP://RootDSE
कंप्यूटर के डोमेन के लिए जानकारी पूछेगा।
कुछ पूछ सकते हैं: इतना जटिल क्यों?
ActiveDirectory.Domain.GetComputerDomain().Name;
या बस उपयोगकर्ता के डोमेन नाम प्राप्त: पूरी तरह से
Environment.GetEnvironmentVariable("USERDOMAIN");
या
Environment.UserDomainName;
लेकिन NetBIOS डोमेन नाम हो सकता है कुछ बस पहले डॉट द्वारा प्राप्त करने से पहले नाम का उपयोग अलग, और आप या आपका कंप्यूटर एक अलग डोमेन या जंगल में हो सकता है! तो यह दृष्टिकोण केवल एक साधारण वातावरण में प्रयोग योग्य है।
DJ KRAZE’s समाधान को क्रॉस डोमेन क्वेरीज़ को अनुमति देने के लिए केवल एक छोटा संशोधन की आवश्यकता है। यह एक ट्रस्ट रिश्ते को मानता है!
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;
}
आप क्यू एंड ए प्रारूप, या में यह लिखना चाहिए (संभवतः) अपने बेहतर उत्तर मूल प्रश्न के साथ जाना चाहिए। –
मेरा संपादन अनुरोध अस्वीकार कर दिया गया था क्योंकि "मूल पोस्ट में संपादन बहुत अधिक बदलता है" – Daro
इसे एक अलग उत्तर के रूप में पोस्ट करें। अधिक प्रतिनिधि वाले किसी को बाद में उन्हें विलय करने में सक्षम होना चाहिए। –