[C#] 장치관리자 목록 추출하기

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Management;

using System.Management.Instrumentation;


/**

 * //KBW : https://powershell.one/wmi/root/cimv2/win32_pnpentity

 *  {

        1          {'Other'}

        2        {'Unknown'}

        3          {'Running/Full Power'}

        4          {'Warning'}

        5          {'In Test'}

        6          {'Not Applicable'}

        7          {'Power Off'}

        8          {'Off Line'}

        9          {'Off Duty'}

        10         {'Degraded'}

        11         {'Not Installed'}

        12         {'Install Error'}

        13         {'Power Save - Unknown'}

        14         {'Power Save - Low Power Mode'}

        15         {'Power Save - Standby'}

        16         {'Power Cycle'}

        17         {'Power Save - Warning'}

        18         {'Paused'}

        19         {'Not Ready'}

        20         {'Not Configured'}

        21         {'Quiesced'}

      }

 * 

 **/



namespace DeviceStatus

{

    class Program

    {

        static void Main(string[] args)

        {

            String result = "OK";

            // Query the device list trough the WMI. If you want to get

            // all the properties listen in the MSDN article mentioned

            // below, use "select * from Win32_PnPEntity" instead!

            ManagementObjectSearcher deviceList =

                //new ManagementObjectSearcher("Select Name, Status from Win32_PnPEntity");

                //new ManagementObjectSearcher("Select * from Win32_PnPEntity where Availability = 12 or Availability = 11");

                new ManagementObjectSearcher("Select * from Win32_PnPEntity where Availability = 2");


            // Any results? There should be!

            if (deviceList != null)

                // Enumerate the devices

                foreach (ManagementObject device in deviceList.Get())

                {

                    // To make the example more simple,

                    object n = device.GetPropertyValue("Name");

                    string name = "NoName".ToString();

                    if (n != null) name = n.ToString();

                    string status = device.GetPropertyValue("Status").ToString();


                    // Uncomment these lines and use the "select * query" if you 

                    // want a VERY verbose list

                    // foreach (PropertyData prop in device.Properties)

                    //    Console.WriteLine( "\t" + prop.Name + ": " + prop.Value);


                    // More details on the valid properties:

                    // http://msdn.microsoft.com/en-us/library/aa394353(VS.85).aspx

                    


                    // Part II, Evaluate the device status.

                    bool working = ((status == "OK") || (status == "Degraded")

                        || (status == "Pred Fail"));


                    if (working == true)

                    {

                        Console.WriteLine("Device name: {0}", name);

                        Console.WriteLine("\tStatus: {0}", status);

                        Console.WriteLine("\tWorking?: {0}", working);

                    }

                    else if (name == "NoName")

                    {

                        Console.WriteLine("Device name: {0}", name);

                        Console.WriteLine("\tStatus: {0}", status);

                        Console.WriteLine("\tWorking?: {0}", working);

                    }


                    result = "ERROR";

                }


            //Console.WriteLine("Press any key...");

            //Console.ReadKey();

            Console.WriteLine("{0}",result);

        }

    }

}


0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

기타

번호 제목 글쓴이 날짜 조회수
53 [Linux] local-hos-names 파일 - Configuration local-host-names 최고관리자 08-18 1,044
52 [Ubuntu] Mysql 외부접속이 안될 때 최고관리자 08-17 1,091
51 [Ubuntu] PHP PHP 7.4.22를 깔았는데 소스가 보이는 경우 최고관리자 08-17 2,065
50 [nginX] Nginx 413 Request Entity Too Large 에러 해결하기 최고관리자 07-21 1,143
49 [MySql] 성능최적화 최고관리자 07-06 1,033
48 [PHP] CentOS PHP Composer 설치 최고관리자 06-23 1,191
47 [Linux] Disk 및 폴더 용량 정보 확인 최고관리자 06-12 1,184
46 [Linux] find 명령어로 오래된 파일 삭제하기 최고관리자 06-12 2,771
45 [Git Server] [rejected] master -> master (fetch first) 에러해결 최고관리자 06-09 1,131
44 [Git Server] Interactive git shell is not enabled. 문제 해결 최고관리자 06-09 1,998
43 [IntelliJ] 많이 쓰이는 단축키 최고관리자 05-26 1,060
42 [IntelliJ] 단축키 최고관리자 05-24 1,226
41 [Flutter] 유용한 블로그 최고관리자 05-12 1,101
40 [구글맵] 다중마커 표시 최고관리자 05-05 1,462
39 [Firmware] STM8 STVD gdi-error 40201 문제 해결 최고관리자 04-03 1,803
38 [Git] Local PC에서 소스폴더에서 Git Hub에 업로드 하는 방법 최고관리자 03-13 1,177
37 [Linux] netstat - 네트워크 통계정보 최고관리자 01-18 1,328
36 [Docker] Nginx 를 사용한 SubDomain(서브도메인) 분기 최고관리자 01-17 3,177
35 [docker] 도커 컴포즈란? 예제 및 기본 사용법 (docker-compose) 최고관리자 01-15 1,331
34 [docker] docker-compse를 활용하여 완벽한 개발 환경 구성하기 최고관리자 01-15 1,261