因為公司有多個伺服器,要檢查磁碟的使用方式確定程式放哪個伺服器和清理垃圾,所以寫個小程式幫忙檢查。
效果圖:
後台代碼:
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;}}