c# मैं कैसे जांच सकता हूं कि कंप्यूटर का डोमेन खाता अमान्य हो गया है(ट्रस्ट टूट गया है)?



windows active-directory (1)

मुझे नोटबुक पहचानना चाहिए जिनके domain accounts अब वैध नहीं हैं।

कई समस्याएं होने के कारण अमान्य डोमेन खाते हो सकते हैं। अधिकतर क्लाइंट को बैकअप से पुनर्स्थापित किया गया और बाद में डोमेन खाता किसी भी अधिक वैध नहीं है

Int इस मामले व्यवहार है:

  • cached credentials माध्यम से उपयोगकर्ता का लॉगऑन कार्य करता है
  • उपयोगकर्ता के has access to shares और सर्वर पर फाइल (NTLM) has access to shares
  • केर्बोस के माध्यम से पहुंच Kerberos does not work

क्या कंप्यूटर खाते की वैधता की जांच करने की कोई संभावना है?


इस कोड के साथ मुझे invalid computer domain accounts मिल सकती हैं:

try
{
    string sMyComputer = "MyComputer"
    Domain computerDomain = Domain.GetComputerDomain(); // may! throw ActiveDirectoryObjectNotFoundException if computer account is invalid 
    string sComputerDomain = computerDomain.Name;
    NTAccount acc_machine = new NTAccount(sComputerDomain, sMyComputer + "$"); 
    SecurityIdentifier sid = (SecurityIdentifier)acc_machine.Translate(typeof(SecurityIdentifier)); // always throws an SystemException if computer account is invalid
}
catch    
{ 
   // something is wrong with the account    
}
  • smycomputer + "$" यह है कि खाता नाम कैसे सक्रिय निर्देशिका में संग्रहीत है
  • मेरा अनुभव यह है कि पहला अपवाद मुख्य रूप से फेंका नहीं गया है और रिटर्न वैल्यू डोमेन का सही नाम है, कंप्यूटर ने एक बार एक कम्प्यूटर अकाउंट का काम किया था
  • यदि कंप्यूटर अकाउंट अब अमान्य है तो दूसरे अपवाद (सिस्टमएक्सेप्शन) हमेशा फेंक दिया जाता है त्रुटिपत्र 80004005 है। (मुझे एक पहचाननोटमैप अपवाद की उम्मीद थी)

संपादित करें:
कोड में सही त्रुटि





account