2008-12-09 21 views
89

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

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

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

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

+0

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

उत्तर

237

:

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

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

echo %LOGONSERVER% 
+0

आप जीतते हैं। यही वही है जो मैं ढूंढ रहा था। –

+3

अच्छा और सरल ... बढ़िया! +1 – jkp

+0

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

11

सी # में/नेट 3.5 आप एक छोटे से कार्यक्रम लिख सकता है ऐसा करने के लिए: सबसे सरल प्रोग्रामिंग भाषा के साथ

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); 
      } 
     } 
    } 
} 
0

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

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

    var domain = System.DirectoryServices.ActiveDirectory.Domain.GetDomain(domainContext); 
    var controller = domain.FindDomainController(); 
6

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

+0

मुझे रिपोर्ट प्राप्त करने के लिए तर्क "/ आर" का उपयोग करना पड़ा। – flickerfly

+0

आपको 'gpresult/z'' का प्रयास करना चाहिए !! – ErikE

+0

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

7

कमांड लाइन से लॉगऑनसेवर env चर क्वेरी।

सी:> सेट एल

LOGONSERVER = '\' विंडोज पर \ DCNAME

+0

इस तरह से निर्धारित सेट कमांड को नहीं पता था। पारितोषिक के लिए धन्यवाद! – ojblass

9

cmd में, टाइप commande निम्नलिखित:

nltest /dclist:{domainname} 

यह विशेष डोमेन

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

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

0

पावरहेल में: $ env: logonserver

+0

यह प्रश्न का उत्तर नहीं देता है। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/whats-reputation) हो जाने पर आप [किसी भी पोस्ट पर टिप्पणी कर सकेंगे] (https://stackoverflow.com/help/privileges/comment); इसके बजाय, [उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-कर-बजाय)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/1 9 01 9 8383) – cezar

संबंधित मुद्दे

 संबंधित मुद्दे