2012-03-19 9 views
5

मेरे पास एडीयूर्स की एक सूची है और मैं यह जांचना चाहता हूं कि किसी भी उपयोगकर्ता के पासवर्ड जल्द ही समाप्त हो रहे हैं, लेकिन मुझे जांच करने के लिए कोई संपत्ति नहीं मिल रही है।पासवर्ड समाप्ति तक मुझे एडीयूसर की पासवर्ड समाप्ति तिथि या दिन शेष कैसे पता चल सकता है?

उत्तर

10

इस बार शेष पता लगाने के लिए जब तक पासवर्ड समाप्त होने से प्रत्येक उपयोगकर्ता के लिए चाल करना चाहिए:

private static TimeSpan GetTimeRemainingUntilPasswordExpiration(string domain, string userName) 
{ 
    using (var userEntry = new System.DirectoryServices.DirectoryEntry(string.Format("WinNT://{0}/{1},user", domain, userName))) 
    { 
     var maxPasswordAge = (int)userEntry.Properties.Cast<System.DirectoryServices.PropertyValueCollection>().First(p => p.PropertyName == "MaxPasswordAge").Value; 
     var passwordAge = (int)userEntry.Properties.Cast<System.DirectoryServices.PropertyValueCollection>().First(p => p.PropertyName == "PasswordAge").Value; 
     return TimeSpan.FromSeconds(maxPasswordAge) - TimeSpan.FromSeconds(passwordAge); 
    } 
} 

नोट: यदि आप System.DirectoryServices के लिए एक संदर्भ जोड़ने की आवश्यकता होगी।

+0

सुनिश्चित करें कि ठीक ग्रेन पासवर्ड नीतियों में कारक यदि आप उनका उपयोग कर रहे हैं या उनका उपयोग कर रहे हैं। मैं नहीं सोचता * यह करता है, लेकिन, मैंने यहां इस्तेमाल किए गए WinNT प्रदाता को नहीं देखा है। –

+1

क्या यह सही समाधान है यदि डोमेन नीति समूह नीति द्वारा ओवरराइड की जाती है? –

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