2014-09-03 4 views
-1

iam은 현재 간단한 도구를 만들려고 노력하고 있지만 iam이이 부분을 코딩하는 방법을 알지 못한다는 것을 깨달았습니다.findout 어떤 Windows 사용자가 어떤 프로세스를 시작했는지

'windows-user'가 'LoginServer.exe'를 사용하고 싶습니다.

(예 : (accounts : administrator, test))이 경우 관리자는 LoginServer.exe를 실행하고 있으며 나는 그가 LoginServer를 실행하고 있는지 검색하기 위해 프로그래밍 방식으로 방법을 찾고 싶습니다.) 나는 그것이 실행중인 작업 관리자에서 볼 수 있지만 실행중인 사용자가 표시되지 않습니다.

이것은 내가 겪는 모든 문제, 즉 'loginserver.exe'를 찾는 방법을 알고 있지만, 어떤 사용자가 실제로 프로세스를 시작했는지 찾는 방법을 모른다.

잘하면 너희 중의 누구라도 방법을 알아야한다.

+0

이 단지에 대한 작업입니다 매니저? 그렇다면'View'를 선택하고'Select Column'을 선택하고'user'를 체크하십시오 – doctorlove

+0

작업 관리자에 관한 것이 아니라 작업 관리자에서 프로세스를 볼 수있는 방법을 설명하고 싶지만 어떤 사용자가 시작했는지 볼 수는 없습니다. 나는 (예 : 위에서 설명한 방법으로) 그런 다음 어떻게하면 이것을 사용자가 사용하는 값을 반환하는 코드로 변환 할 수 있습니까? 프로그램 또는 사용자 이름은 프로그램을 사용하지 않습니다. – user1547355

+0

http://stackoverflow.com/questions/777548/how-do-i-determine-the-owner-of-a-process-in-c – TyCobb

답변

0

Process 클래스에는 username이라는 하위 속성이 포함 된 StartInfo 속성이 있습니다. 따라서 모든 프로세스 (Process.GetProcesses())의 목록을 가져와 거기에서 사용자 이름을 가져올 수 있습니다.

당신이 사용자의 목록이 프로세스를 사용하지 않는 사람 하나를 찾기 위해 로그인 얻고 싶은 경우에, 당신은 WMI를 사용하여 로그인 한 사용자 로컬 목록을 검색 할 수 있습니다

ManagementObjectSearcher query= new ManagementObjectSearcher("SELECT * FROM Win32_UserProfile WHERE Loaded = True"); 

foreach (ManagementObject mObject in query.Get()) 
      { 
       Console.WriteLine(mObject["Name"]); 
      } 
관련 문제