因为公司有多个服务器,要检查磁盘的使用情况确定程序放哪个服务器和清理垃圾,所以写个小程序帮忙检查。
效果图:
后台代码:
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);}}}#endregionprivate 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;}}