2009-10-27 2 views
7

사용자 계정 (Local System/User etc)을 찾는 방법 서비스가 "다음 계정으로 로그온"하에 실행되도록 설정되어 있습니까?서비스가 "다음 계정으로 로그온"으로 설정된 계정 찾기

similar question과 달리이 코드는 서비스 자체에서 실행할 수 없으며 서비스가 실행되지 않을 수 있습니다.

System.ServiceProcess.ServiceController 클래스에는 "Log On As"사용자가 아닌 상태를 가져 오는 유용한 메소드가 있습니다.

답변

13

이것이 내가 아는 유일한 방법이며, 주위를 둘러 보았고 테스트 한 것으로 작동합니다. 있는지 확인은하지 당신이 당신의 일을 할 것입니다 에 System.Management

string serviceName = "aspnet_state"; 

SelectQuery query = new System.Management.SelectQuery(string.Format(
    "select name, startname from Win32_Service where name = '{0}'", serviceName)); 
using (ManagementObjectSearcher searcher = 
    new System.Management.ManagementObjectSearcher(query)) 
{ 
    foreach (ManagementObject service in searcher.Get()) 
    { 
     Console.WriteLine(string.Format(
      "Name: {0} - Logon : {1} ", service["Name"], service["startname"])); 
    } 
} 
2

StartName 매개 변수와 함께 WMI 및 Win32_Service 클래스를 사용하는 것은 어떻습니까?

This article 도움이 될 수 있습니다.

0

을 참조를 추가 표시 이름이 필요 윌의 서비스 이름을 사용

Get-WMIObject Win32_Service | Where-Object {$_.startname -ne "localSystem" }| Where-Object {$_.startname -ne "NT AUTHORITY\LocalService" } |Where-Object {$_.startname -ne "NT AUTHORITY\NetworkService" } |select startname, name 
관련 문제