2011-07-28 3 views
0

먼저 leppie이라는 종류의 사용자가 나를 도우려고했지만 내가 찾고있는 답변을 얻을 수 없었습니다. 긴급한 문제입니다.Active Directory를 현재 Windows 서비스로 가져 오기

이 승리 서비스는 원격으로 여러 대의 컴퓨터를 설치되기 때문에 내가 (로컬 시스템 계정으로 Windows 7에서 Windows 서비스를 실행하고 자동으로, 나는 아래의 코드에 의해 ServiceInstaller.Designer.cs에서 로컬 시스템을 사용할 필요가 생각

:

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 방송의 사용자가 admin이고 나는이 ABC 관리자의 암호와 사용자 이름을 알고 말할 수 말할 수 있지만, 관리자가 암호를 변경하는 경우,이 어떤 될 것입니다 내 WINSERVICE 영향을 미칠 것이라고 생각 70 대의 컴퓨터에서 실행됩니다.

활성 디렉토리에서 사용자 자격 증명을 검색하는 방법이 있습니까? 당신이 나에게 몇 가지 코드 샘플을 제공하는 경우 정말

답변

1

문제는 Environment.UserName 항상 서비스 계정의 사용자 이름을 반환하는 것입니다,

아주 대단히 감사합니다 .. 감상 할 수있는 서비스에 따라 컴퓨터에 로그인 한 사용자가 아닌 실행 중입니다.

워크 스테이션에 로그인 한 사용자의 이름을 얻는 방법은 this question을 참조하십시오. Windows에서는 여러 사용자가 동시에 로그인 할 수 있습니다.

관련 문제