C\#원 격 또는 로 컬 디스크 사용량 검사

회사 에 여러 개의 서버 가 있 기 때문에 디스크 의 사용 상황 을 확인 하고 프로그램 이 어느 서버 를 두 고 쓰레기 를 치 우 는 지 확인 해 야 하기 때문에 작은 프로그램 을 써 서 검 사 를 도와 준다.
효과 그림:


배경 코드:

private void btnCheck_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
if (rbtnRemote.Checked)
{
//  
RemoteDisk();
}
else
{
//  
LocalDisk();
}
}
//    
private void LocalDisk()
{
WqlObjectQuery wmiquery = new WqlObjectQuery("select * from Win32_LogiCalDisk");
ManagementObjectSearcher wmifind = new ManagementObjectSearcher(wmiquery);
//  
ShowInfo(wmifind);
}
//  
private void RemoteDisk()
{
if (cbIP.Text == "" | cbUserName.Text == "" | txtPwd.Text == "")
{
MessageBox.Show("        !");
return;
}
string ip = cbIP.Text;
string username = cbUserName.Text;
string password = txtPwd.Text;
ConnectionOptions conn = new ConnectionOptions();
conn.Username = username;
conn.Password = password;
conn.Timeout = new TimeSpan(1,1,1,1);//    
//ManagementScope          。 
string path = string.Format(@"\\{0}\root\cimv2", ip);
//         (    ),         ManagementScope   、            。 
ManagementScope scope = new ManagementScope(path, conn); 
scope.Connect(); 
//  
string strQuery = "select * from Win32_LogicalDisk ";
ObjectQuery query = new ObjectQuery(strQuery);
//  ManagementObjectCollection      
ManagementObjectSearcher wmifind = new ManagementObjectSearcher(scope, query);
ShowInfo(wmifind);
}
#region       
private void ShowInfo(ManagementObjectSearcher wmifind)
{
long gb = 1024 * 1024 * 1024;
string type = "";
string str = "";
double freePath = 0d;
foreach (var mobj in wmifind.Get())
{
type = mobj["Description"].ToString();
//         
if (type == "Local Fixed Disk")
{
str = "     :" + mobj["Name"].ToString();
freePath = Math.Round(Convert.ToDouble(mobj["FreeSpace"]) / gb, 1);
str += "     :" + freePath+ "G";
str += "     :" + Math.Round(Convert.ToDouble(mobj["Size"].ToString()) / gb, 1) + "G";
if (freePath < 20)
{
str += " ----     !";
}
listBox1.Items.Add(str);
}
}
}
#endregion
private void rbtnLocal_CheckedChanged(object sender, EventArgs e)
{
//    
if (rbtnLocal.Checked == true)
{
cbIP.Enabled = false;
cbUserName.Enabled = false;
txtPwd.Enabled = false;
}
}
private void rbtnRemote_CheckedChanged(object sender, EventArgs e)
{
if (rbtnRemote.Checked == true)
{
cbIP.Enabled = true;
cbUserName.Enabled = true;
txtPwd.Enabled = true;
}
}

좋은 웹페이지 즐겨찾기