2011-04-04 60 views

回答

7

這是我能拿出...最簡單的方法

using System.DirectoryServices; 
using System.DirectoryServices.AccountManagement; 
using ActiveDs; 

//... 

PrincipalContext domain = new PrincipalContext(ContextType.Domain); 
UserPrincipal user = UserPrincipal.FindByIdentity(domain, "username"); 
DirectoryEntry entry = (DirectoryEntry)user.GetUnderlyingObject(); 
IADsUser native = (IADsUser)entry.NativeObject; 
Console.WriteLine(user.GivenName + "'s password will expire on " + native.PasswordExpirationDate); 


注1:ActiveDsCOM選項卡上列出添加引用對話框,活動DS類型庫

注意#2:據我所知,PasswordExpirationDate是UTC時間。

+0

很好的答案。謝謝!一個提示 - 有時候,使用FindByIdentity非常緩慢。大多數在本地機器上。在這些情況下,最好使用'PrincipalSearcher' – itsho 2016-07-03 21:39:21

+0

我通常不使用「* Principal *」類。我更喜歡DirectoryEntry和DirectorySearcher對象。在我的測試中,他們往往會更快。 – 2016-07-03 23:43:50

+0

ActiveD在哪個組件中存在? – Bartosz 2017-06-26 15:01:41

相關問題