2011-01-14 135 views
1

我已經完成了一個基本上通過DirectoryEntry通過網絡上的所有活動用戶的應用程序,在那裏我可以獲取每臺計算機的用戶名(登錄ID),這由DE.UserName(DirectoryEntry) 。以管理員身份進行身份驗證

好吧,到目前爲止好,現在我的問題;每當我嘗試獲取它的密碼時,它會拋出一個異常,說我需要擁有管理員權限才能獲取每個連接的PC的密碼。

我不是網絡的所有者,所以我想知道是否有任何方法作爲管理員身份驗證或將您的組更改爲管理員,或以任何方式繞過此操作,以便我可以訪問它的密碼?

代碼:

DirectoryEntry computers = new DirectoryEntry("WinNT://JBVAS");//The domain 
     IEnumerator enumerator = computers.Children.GetEnumerator(); 
     while(enumerator.MoveNext()) 
     { 
      DirectoryEntry entry = enumerator.Current as DirectoryEntry; 
      Console.WriteLine("Username: {0}{1}Password: {2}", 
       entry.Username, Environment.NewLine, entry.Password); 
     } 

回答

1

你可以使用模擬提出更高的特權用戶下運行的代碼(臨時)。

幾年前,我寫了一個易於使用的模擬類,you can find it over at CodeProject.com

一個例子可以是:

using (new Impersonator("myUsername", "myDomainname", "myPassword")) 
{ 
    // code that executes under the new context 
} 

將需要使用阻止內部管理員權限您的Active Directory的代碼。

+0

這不就是給我這臺計算機的管理權限,但不是網絡?或者是我在找什麼?我相信網絡上有4-5個管理員帳戶,他們都有用戶名「adm- [他們的名字]」,而我們的普通用戶只有我們的用戶名。 – user576137 2011-01-14 20:37:39