방법: 서비스 목록 검색

업데이트: 2007년 11월

ServiceController 클래스의 GetServices 메서드를 사용하여 특정 컴퓨터에 있는 서비스 목록을 검색할 수 있습니다. GetServices 메서드는 장치 드라이버 관련 서비스를 제외하고 컴퓨터에서 사용 가능한 모든 서비스의 배열을 반환합니다. 장치 드라이버 서비스는 GetDevices 메서드로 검색할 수 있습니다.

이러한 두 메서드에 대해 관련 정보를 검색할 특정 컴퓨터를 선택하거나 매개 변수를 전달하지 않고 로컬 컴퓨터에만 있는 서비스를 검색할 수 있습니다.

서비스 목록을 검색하려면

  1. 쿼리 결과가 포함될 ServiceController 형식의 배열을 만듭니다.

  2. 다음 폼 중 하나를 사용하여 ServiceController 클래스의 적절한 메서드를 호출하고 배열에 결과를 설정합니다.

    • 로컬 컴퓨터에서 장치 드라이버 서비스가 아닌 서비스를 검색하려면 다음과 같이 매개 변수를 사용하지 않고 GetServices 메서드를 호출합니다.

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetServices()
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetServices();
      
      System.ServiceProcess.ServiceController services[];
      services = System.ServiceProcess.ServiceController.GetServices();
      
    • 특정 컴퓨터에서 장치 드라이버 서비스가 아닌 서비스를 검색하려면 다음과 같이 GetServices 메서드를 호출하고 정보를 검색할 컴퓨터를 문자열 매개 변수로 지정합니다.

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetServices( _
         "machinename")
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetServices(
                 "machinename");
      
    • 로컬 컴퓨터에서 장치 드라이버 서비스를 검색하려면 다음과 같이 매개 변수를 사용하지 않고 GetDevices 메서드를 호출합니다.

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetDevices()
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetDevices();
      
      
    • 특정 컴퓨터에서 장치 드라이버 서비스를 검색하려면 다음과 같이 GetDevices 메서드를 호출하고 정보를 검색할 컴퓨터를 문자열 매개 변수로 지정합니다.

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetDevices( _
         "machinename")
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetDevices(
                 "machinename");
      

    다음 코드에서는 로컬 컴퓨터에서 서비스 집합을 검색하는 방법과 목록 상자에 개별 서비스 정보를 표시하는 방법을 보여 줍니다. GetServices 메서드가 ServiceController 개체의 배열을 반환한다는 점에 유의하십시오. 반환된 각 ServiceController는 다음과 같이 쿼리된 컴퓨터에 있는 서비스 하나를 나타냅니다.

    Sub ListServices()
        Dim ListBox1 As ListBox
    
        Dim services() As System.ServiceProcess.ServiceController
        Dim i As Integer
        services = System.ServiceProcess.ServiceController.GetServices()
        ListBox1.Items.Clear()
        For i = 0 To services.Length - 1
            ListBox1.Items.Add(services(i).ServiceName)
        Next
    End Sub
    
     private void ListServices()
        {
            ListBox listBox1 = null;
    
            System.ServiceProcess.ServiceController[] services;
            services = System.ServiceProcess.ServiceController.GetServices();
            listBox1.Items.Clear();
            for (int i = 0; i < services.Length; i++)
            {
                listBox1.Items.Add(services[i].ServiceName);
            }
        }
    

이 코드 예제는 Visual Basic IntelliSense 코드 조각으로도 사용할 수 있습니다. 이 코드 조각은 코드 조각 선택기의 Windows 운영 체제 > Windows 서비스에 있습니다. 자세한 내용은 방법: 사용자 코드에 코드 조각 삽입(Visual Basic)을 참조하십시오.

참고 항목

작업

방법: ServiceController 구성 요소 인스턴스 만들기

방법: 서비스에 대한 관리 작업 수행

개념

기존 서비스와 상호 작용 소개