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;
}
}
(0)

相关推荐

  • c#判断磁盘驱动器类型的两种方法介绍

    1.使用WINDOWS API 复制代码 代码如下: /// <summary> /// 判断一个磁盘驱动器的类型 /// </summary> /// <param name="nDrive">包含了驱动器根目录路径的一个字串</param> /// <returns>Long,如驱动器不能识别,则返回零.如指定的目录不存在,则返回1.如执行成功,则用下述任何一个常数指定驱动器类型:DRIVE_REMOVABLE, DRIV

  • 磁盘配额的wmi版本(C#)

    using System;  using System.Management;  namespace DiskQuota  {       /// <summary>       /// Class1 的摘要说明.       /// </summary>       class Class1       {           /// <summary>           /// 应用程序的主入口点.           /// </summary> 

  • C#采用FileSystemWatcher实现监视磁盘文件变更的方法

    本文实例讲述了C#采用FileSystemWatcher实现监视磁盘文件变更的方法.分享给大家供大家参考.具体实现方法如下: 简化需求:有一个简化了的需求是这样的:有一个拍照程序在运行,一旦抓拍之后则将图片文件存储至某目录,然后图片要上传至远程服务器并update数据库. 原需求:原先的需求是这样的:有一台PDA扫码枪,一个IP照相机放置在下线区传送带上方.当PDA扫描箱子上的条码,触发相机拍照,将图片流传至远端服务器,找到对应的条码,将图片存储并更新数据库. 然而我不知道PDA扫描的瞬间如何与

  • C#实现获取磁盘空间大小的方法

    本文实例讲述了C#实现获取磁盘空间大小的方法.分享给大家供大家参考.具体实现方法如下: 方法一:利用System.IO.DriveInfo.GetDrives方法来获取 复制代码 代码如下: ///   /// 获取指定驱动器的空间总大小(单位为B) ///   ///  只需输入代表驱动器的字母即可 (大写) ///    public static long GetHardDiskSpace(string str_HardDiskName) {     long totalSize= new

  • C#检查远程或本地磁盘使用率

    因为公司有多个服务器,要检查磁盘的使用情况确定程序放哪个服务器和清理垃圾,所以写个小程序帮忙检查. 效果图: 后台代码: private void btnCheck_Click(object sender, EventArgs e) { listBox1.Items.Clear(); if (rbtnRemote.Checked) { //远程 RemoteDisk(); } else { //本地 LocalDisk(); } } //查看本地 private void LocalDisk()

  • logrus hook输出日志到本地磁盘的操作

    logrus是go的一个日志框架,它最让人激动的应该是hook机制,可以在初始化时为logrus添加hook,logrus可以实现各种扩展功能,可以将日志输出到elasticsearch和activemq等中间件去,甚至可以输出到你的email和叮叮中去,不要问为为什么可以发现可以输入到叮叮中去,都是泪,手动笑哭! 言归正传,这里就简单的通过hook机制将文件输出到本地磁盘. 首先 go get github.com/sirupsen/logrus 然后 logrus和go lib里面一样有6个

  • bootstrap fileinput组件整合Springmvc上传图片到本地磁盘

    整合前的准备步骤 1.搭建好基础框架,本文用的是SSM(Spring+SpringMVC+Mybatis),这里的过程就不在本文中讲了,之前我做个一个demo(ssm整合+用户模块),可以参考这个搭建好. 2.下载bootstrap fileinput组件源码: https://github.com/kartik-v/bootstrap-fileinput/ 搭建后的效果图 图1. 图2. 图3. 图4. 图5. 在需要编写的jsp页面引入组件 本工程的路径界面如下: 在jsp引入组件需要的js

  • 远程或本地获取系统信息的脚本RGIS.vbs

    ******************************************************************************* RGIS v1.03 Remote Get Infomation Script, by zzzEVAzzz Welcome to visite www.isgrey.com & www.h4h4.com Usage: cscript rgis.vbs [/r targetIP username password] [/o filename

  • DIY你的爱机 让本地磁盘也可以玩自动播放

    平时看惯了电脑那张呆板的脸的朋友,一定很希望能够DIY自己的爱机.通过修改注册表,我们可以更改许多系统默认的图标,但却发现很难更改驱动器的图标(Windows 2000以上系统),即使利用一些第三方软件(如超级兔子)修改,也只能是千篇一律地把所有分区的图标改为同一个图标.有没有想过给每个分区都设置一个不同的图标,并像光驱一样,具有"自动播放"功能?按照下面介绍的修改方法,我们完全可以让自己的电脑更酷一些(以下方法是以Windows 2000为例,Windows 2000以上系统都适合)

  • Android studio 项目手动在本地磁盘中删除module后,残留文件夹无法删除的问题解决方法

    Android studio 项目手动在本地磁盘中删除module后,残留文件夹无法删除问题 如标题所述,本人在本地磁盘删除project中的module后(好吧,是我太菜了),仍然残留着一个文件夹,但是又无法右键之后又无法删除,(强迫症得我觉得很难受),每次打开时候还Android studio还报了一个错误,如下: .Unsupported Modules Detected: Compilation is not supported for following modules: testfo

  • bash脚本如何监控cup/内存/磁盘使用率

    目录 查看消耗内存最多的前40个进程: 自动任务做一个基础资源告警脚本 利用free工具监控内存利用率,超过80报警并提取出占用内存最高的前十进程. 利用df命令监控磁盘利用率,超过80报警. 这篇博客中所写的,在实际工作中并没有什么卵用,工作中并不会用到这种脚本去监控.不过自己写一遍,可以让初学者对CPU.内存.磁盘等一些基础知识和基础命令更加了解. #!/bin/bash #获取内存情况 mem_total=`free | awk 'NR==2{print $2}'` #获取内存总大小 me

  • SpringBoot本地磁盘映射问题

    目录 SpringBoot本地磁盘映射 SpringBoot本地磁盘路径映射遇到的坑 SpringBoot本地磁盘映射 出于安全性考虑,SpringBoot无法直接访问本地磁盘的文件.在某些应用场景下,需要访问例如本地的图片等一些内容.这时候,我们可以通过创建一个虚拟路径来指向本地磁盘文件. 重写WEB配置类,添加新的静态资源路径配置. 代码如下: @Configuration public class WebConfig implements WebMvcConfigurer {     @O

  • powershell远程管理服务器磁盘空间的实现代码

    一.启用远程管理 1.将管理服务器的trusthost列表改为* 运行Set-item wsman:localhost\client\trustedhosts –value * 2.在远程服务器上运行Enable-PSremoting 注: 在本地服务器上以Administrator运行"Enable-Psremoting . Winrm Quickconfig .  Set-WSManQuickConfig",均提示"访问被拒绝",可能的原因如下: 1.在工作组计

  • 关于Git远程与本地冲突的解决方法

    发现问题 昨天发现了一个新的前端框架Semantic UI,觉得比较新奇嘛,于是乎就动手做一个页面试试,在晚上11点左右页面做好了并上传到GitHub,开启了pages.今天上午发现手机上显示有问题,修改了代码,准备再次Push到GitHub上的时候,问题出现了: 看到这提示,我马上打开GitHub查看了一番,发现GitHub在给pages添加域名时,创建了一个CNMAE的文件.远程有了更新而本地也有了更新,怎么办呢?我的做法是这样的. 解决方法 1.把远程仓库master分支下载到本地并存为t

随机推荐