티스토리 뷰


원격컴퓨터의 HDD 용량 확인 프로그램은 포스팅 맨 하단에 첨부파일 참조.


원격지 윈도우 서버에 매우 큰 용량의 DB가 있는데...


로그를 제때 안비워 주면 가끔 원격 서버 HDD가 가득차서 모든 프로그램이 중단된다.


매번 원격 데스크톱 연결 하기가 힘들어서 WMI 사용하는 방법을 연구해 보기로 했다.


먼저, WMI ( Windows Management Instrumentation ) 를 이용하면 원격지 또는 로컬 PC의 자원 관리를 쉽게 할 수 있다. 

여기서 말하는 자원은 CPU 이용률, HDD 사용량, Memory , Network 상태 등이 될 수 있겠다.


사용 하기 위해서는 먼저 프로젝트가 System.Management 어셈블리를 참조하고 있어야 한다.


아래는 모든 로컬 디스크의 "여유 공간" 을 확인하는 코드 이다.


using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher("root\\CIMV2", 
                    "SELECT * FROM Win32_LogicalDisk"); 

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Win32_LogicalDisk instance");
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("FreeSpace: {0}", queryObj["FreeSpace"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }
        }
    }
}

또한, 이 코드는 CodeCreator 라는 툴을 이용하여 자동으로 생성한 것이다.


이를 이용하면 편리하게 코드를 완성시킬 수 있다.


CodeCreator.zip


또한, 원격으로 사용하기 위해서는 다음과 몇 줄만 더 코딩하면 된다.


ConnectionOptions connection = new ConnectionOptions();
            connection.Username = "원격지 PC의 ID";
            connection.Password = "원격지 PC의 PW";

ManagementScope scope = new ManagementScope(
                    "\\\\111.111.111.111(접속할 원격지 PC의 IP 주소)\\root\\CIMV2", connection);
                scope.Connect();

ObjectQuery query= new ObjectQuery(
                    "SELECT * FROM Win32_LogicalDisk"); 

                ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher(scope, query);
....



이를 활용해서 원격 컴퓨터 또는 서버의 HDD 여유 공간을 확인하는 프로그램을 간단하게 제작하였다.

여기에 살을 덧붙여 모니터링 툴을 만들어 볼 까 한다.


닷넷 4 이상에서 구동한다.

원격 컴퓨터의 관리자 그룹에 있는 ID, PW를 입력하고 Connect 한다. (기본으로 C:\의 여유 공간을 표시한다)

우측 하단에 RRM 트레이 아이콘을 마우스 우클릭하여 Setting에 가보면 모니터링 할 HDD의 드라이브 명을 지정할 수 있다.

(선택 후 늦어도 약 1분 후부터 모니터링을 한다.)

화면 중앙에 회색 바탕이 뜨며, 조금 기다리면 HDD의 용량이 뜬다.

모서리 부분을 잡고 이동시킬 수 있다.


RemoteResourceManagement.exe




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함