मुझे यह कैसे पता चलेगा कि कौन सा कंप्यूटर विंडोज प्रोग्राम में डोमेन कंट्रोलर है?


102

मैं यह निर्धारित करने के लिए एक मार्ग की तलाश कर रहा हूं कि डोमेन नियंत्रक का नाम / आईपी पता किसी दिए गए डोमेन के लिए क्या है जो क्लाइंट कंप्यूटर से जुड़ा है।

हमारी कंपनी में हमारे पास बहुत कम छोटे नेटवर्क हैं जिनका उपयोग हम परीक्षण के लिए करते हैं और उनमें से अधिकांश के पास अपने छोटे डोमेन हैं। एक उदाहरण के रूप में, एक डोमेन का नाम "TESTLAB" है। मेरे पास एक Windows XP वर्कस्टेशन है जो TESTLAB डोमेन का सदस्य है और मैं डोमेन नियंत्रक का नाम जानने की कोशिश कर रहा हूं ताकि मैं जा सकूं और देख सकूं कि उपयोगकर्ताओं को डोमेन के लिए परिभाषित किया गया है या नहीं। हमारी प्रयोगशाला में विंडोज सर्वर 2000 और विंडोज सर्वर 2003 का मिश्रण है (और वास्तव में शायद NT 4 सर्वर का एक जोड़ा है), इसलिए ऐसा समाधान खोजना अच्छा होगा जो दोनों के लिए काम करेगा।

इंटरनेट पर देखते हुए, ऐसा लगता है कि विभिन्न उपयोगिताओं हैं, जैसे कि विंडोज पावर शेल या nltest, लेकिन इन सभी के लिए आवश्यक है कि आप अन्य उपयोगिताओं को डाउनलोड और इंस्टॉल करें। मैं अतिरिक्त कुछ भी स्थापित करने के लिए बिना डोमेन नियंत्रक खोजने के लिए एक रास्ता खोजने की उम्मीद कर रहा था।

संपादित करें यदि मैं डोमेन नियंत्रक या वर्तमान डोमेन में उपयोगकर्ताओं को खोजने के लिए एक कार्यक्रम लिखना चाहता था, तो मैं ऐसा करने के बारे में कैसे जाऊंगा?


चूँकि मैंने इसके लिए एक हल लिखने में थोड़ा समय बिताया, इसलिए मैंने सोचा कि मैं इसे एक प्रोग्रामिंग प्रश्न और फिर से खोल दूंगा।
तवान्फोसन

जवाबों:


253

सबसे सरल प्रोग्रामिंग भाषा के साथ: डॉस बैच

echo %LOGONSERVER%

शायद डार्की के दिमाग में नहीं था, फिर भी, लेकिन फिर भी, शायद धागे के अधिकांश पाठकों की तलाश है। एह ... यह डार्की क्या देख रहा था। हा!
औरर्सॉयविंद

3
यदि आप किसी अन्य डोमेन में डीसी की तलाश कर रहे हैं जिसमें मशीन नहीं है तो यह काम नहीं करेगा।
ब्रेट वेनस्ट्रा

@DorkyEngineer अपने चयनित उत्तर के रूप में इसे कैसे चिह्नित करें?
एरिक

20

विंडोज पर cmd में, निम्न कमांड टाइप करें:

nltest /dclist:{domainname}

यह विशेष डोमेन में सभी डोमेन नियंत्रकों को सूचीबद्ध करता है


3
और nltest /dclist:मेरे लैपटॉप से ​​जुड़े किसी भी डोमेन पर सभी नियंत्रकों को सूचीबद्ध करता है (विंडोज 7)
GMasucci

12

C # /। NET 3.5 में आप करने के लिए एक छोटा सा प्रोग्राम लिख सकते हैं:

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    string controller = context.ConnectedServer;
    Console.WriteLine( "Domain Controller:" + controller );
} 

यह सभी उपयोगकर्ताओं को वर्तमान डोमेन में सूचीबद्ध करेगा:

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    using (UserPrincipal searchPrincipal = new UserPrincipal(context))
    {
       using (PrincipalSearcher searcher = new PrincipalSearcher(searchPrincipal))
       {
           foreach (UserPrincipal principal in searcher.FindAll())
           {
               Console.WriteLine( principal.SamAccountName);
           }
       }
    }
}

7

कमांड लाइन क्वेरी से logonserver env वेरिएबल।

सी:> सेट एल

LOGONSERVER = '\' \ DCNAME


6

gpresultWindows कमांड प्रॉम्प्ट पर चलाएँ । आपको वर्तमान डोमेन, वर्तमान उपयोगकर्ता, उपयोगकर्ता और कंप्यूटर सुरक्षा समूह, समूह नीति नाम, सक्रिय निर्देशिका विशिष्ट नाम, और इसी तरह के बारे में जानकारी मिल जाएगी।


मुझे रिपोर्ट प्राप्त करने के लिए तर्क "/ R" का उपयोग करना था।
जोसिया

आपको प्रयास करना चाहिए gpresult /Z!!
एरिक

/ Z का लाभ क्या है? उपयोग में डीसी का निर्धारण करने के उद्देश्य से, वे तुलनीय प्रतीत होते हैं।
योशिय्याह

1
उपलब्ध जानकारी के कारण लोग विकल्प को निर्देशित करना पसंद कर सकते हैं। लेकिन आप सही हैं, बस उपयोग में डीसी के लिए, अन्य विकल्प अधिक रसीले हैं।
ErikE


0

उस जानकारी को पुनः प्राप्त करने के लिए जब DomainControllerएक डोमेन में मौजूद है जिसमें आपकी मशीन नहीं है, आपको कुछ और चाहिए।

  DirectoryContext domainContext =  new DirectoryContext(DirectoryContextType.Domain, "targetDomainName", "validUserInDomain", "validUserPassword");

  var domain = System.DirectoryServices.ActiveDirectory.Domain.GetDomain(domainContext);
  var controller = domain.FindDomainController();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.