2011-07-28 6 views
0

まず、「leppie」という種類のユーザーが私を助けようとしましたが、私が探している回答を得ることができず、それは緊急の問題です。Active Directoryを現在のWindowsサービスのユーザーにする

私はこの勝利サービスがリモートと静かに多くのコンピュータにインストールされますので、私は以下のコードでServiceInstaller.Designer.csではLocalSystemを使用する必要があると思います(LocalSystemアカウントでWindows 7のWindowsサービスを実行します。

this.ProcessInstaller.Account = System.ServiceProcess.ServiceAccount.LocalSystem; 
this.ProcessInstaller.Password = null; 
this.ProcessInstaller.Username = null; 

私は以下のコードは、現在、(ユーザーがいなくても、自分自身、管理者権限を持っていない)。私はWINSERVICEを実行することが示唆されている

using (DirectoryEntry de = new DirectoryEntry("LDAP://MyDomainName")) 
{ 
    using (DirectorySearcher adSearch = new DirectorySearcher(de)) 
    { 
     adSearch.Filter = "(sAMAccountName=" + Environment.UserName + ")"; 
     SearchResult adSearchResult = adSearch.FindOne(); 

     UserInternalEmail = GetProperty(adSearchResult, "mail"); 
    } 
} 

ユーザーの資格情報でログインして取得することはできません。このWindowsサービスを実行すると、 AD/LDAP/domaの下でどのユーザーがこれを行うことができますか?

this.ProcessInstaller.Account = System.ServiceProcess.ServiceAccount.<User ? LocalService ? NetworkService>; 
this.ProcessInstaller.Password = "adminpassword"; 
this.ProcessInstaller.Username = "adminusername"; 

私は意味は、ABCのユーザーが管理者であると私は、このABC管理者のパスワードとユーザー名を知っていたと言うことができますが、この管理者がパスワードを変更したとき、私はこれがなる私のWINSERVICEに影響すると思います言うことができます70台のコンピュータで動作します。

アクティブなディレクトリでユーザーの資格情報を取得する方法はありますか?あなたは私にいくつかのコードサンプルを提供する場合、私は本当に

答えて

1

問題はEnvironment.UserNameは常にサービスアカウントのユーザー名を返すことで、

は非常にありがとうございました。..いただければ幸いたサービスの下で、ユーザーがマシンにログインしているのではなく、実行中です。

ワークステーションにログインしているユーザーの名前を取得する方法については、this questionを参照してください。 Windowsでは複数のユーザーが同時にログインできるようになります。

関連する問題