티스토리 뷰
원격컴퓨터의 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 라는 툴을 이용하여 자동으로 생성한 것이다.
이를 이용하면 편리하게 코드를 완성시킬 수 있다.
또한, 원격으로 사용하기 위해서는 다음과 몇 줄만 더 코딩하면 된다.
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의 용량이 뜬다.
모서리 부분을 잡고 이동시킬 수 있다.
'전공 > C#' 카테고리의 다른 글
Winform 마우스 이벤트를 받지 않는 컨트롤 만들기, Winform IsHitTestVisible (0) | 2015.08.07 |
---|---|
c# 익스플로러 툴바 만들기(1) (0) | 2015.07.10 |
윈폼에서 SHDocVw 참조, 익스플로러 제어 (0) | 2015.07.09 |
Regasm, warning RA0000: No types were registered (0) | 2015.07.09 |
C# SendMessage string 전달 (2) | 2015.07.06 |