巧用PS检测硬盘自由空间

操作方法

  • 01

    第一个任务,检查服务器上面硬盘的自由空间! 首先让我们看看在vbs下面是怎么实现的,下面代码是我从微软脚本中心copy来的。 Const HARD_DISK = 3 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colDisks = objWMIService.ExecQuery _ ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "") For Each objDisk in colDisks Wscript.Echo "DeviceID: "& vbTab &  objDisk.DeviceID Wscript.Echo "Free Disk Space: "& vbTab & objDisk.FreeSpace Next 注意strComputer = "."这句话,其中的点代表检查本地计算机,如果换成其他服务器的名字,就可以检查远程计算机了。 好了用PS如何做呢? 首先我们把上面那个select语句抄下来,稍加改动,就是PS的格式 $query="Select * from Win32_LogicalDisk Where DriveType = '3'" 看着比vbs简单吧? 注意我把hard_disk换成了数字3,省去了再定义个变量的麻烦。 然后我们就可以直接用PS下面的gwmi (全名为get-wmiobject)命令来进行检测了 $disks = gwmi -query $query 简单吧,上面的命令检测本地计算机的逻辑硬盘,把结果放到$disks变量里面去,如果检测远程计算机呢?把上面的命令改成 $disks = gwmi -query $query -computer "remotepc" 其中remotepc应该是你要检测的远程计算机名字。 下面我们如何查看$disks里面的内容呢? 你可以直接打$disks 会给你一个列表类似这样。 DeviceID     : C: DriveType    : 3 ProviderName : FreeSpace    : 14351843328 Size         : 31453437952 VolumeName   : DeviceID     : E: DriveType    : 3 ProviderName : FreeSpace    : 1361903616 Size         : 5388038144 VolumeName   : New Volume 不太好看哦,我们只需要看看deviceid 和 freespace就可以了。好了运行这一句 $disks | select deviceid, freespace 之后,结果类似下面 deviceid                                                              freespace --------                                                              --------- C:                                                                  14351843328 E:                                                                   1361903616 好看多了吧? 我觉得还是不够,我想看到freespace的大小是gb或者mb而不是上面的那个样子。 我们做一个简单的除法就可以了。试试下面的命令 foreach ($disk in $disks) { "DiviceID - " + $disk.deviceid "FreeSize(GB) - "+($disk.freespace/1gb) } 结果就变成 DiviceID - C: FreeSize(GB) - 13.3661956787109 DiviceID - E: FreeSize(GB) - 1.26837158203125 呵呵够精确吧?在PS下面,把 数字转化成mb或gb是非常方便的,不需要你1024,1024的除,只要直接除1gb或1kb或1mb就可以了! 让我们最后总结一下上面的命令 $query="Select * from Win32_LogicalDisk Where DriveType = '3'" $disks = gwmi -query $query foreach ($disk in $disks) { "DiviceID - " + $disk.deviceid "FreeSize(GB) - "+($disk.freespace/1gb) } 比较一下vbs的代码,哪个更方便呢? 好事儿做到底,再加点儿功能,想列出多台计算机的信息咋办? 不急,先建立一个变量,假设你有三台服务器,名字是server1,server2,server3 $servers= "server1","server2","server3" 然后把上面的代码改写成 $query="Select * from Win32_LogicalDisk Where DriveType = '3'" foreach ($server in $servers) { "Servername - " + $server $disks = gwmi -query $query -computer $server foreach ($disk in $disks) { "DiviceID - " + $disk.deviceid "FreeSize(GB) - "+($disk.freespace/1gb) } }

(0)

相关推荐

  • 快速取消Win7电脑开机自动检测硬盘让开机时间变慢的五大技巧

    当在使用电脑的过程中,总是会遇到一些故障,想必有很多人会遇见每次开机的时候都要自动检测硬盘的问题吧,这样会让开机时间变得更慢而且也觉得有点烦吧?其实出现这样的原因有可能是你非法关机直接断电或者硬盘出现 ...

  • 鲁大师如何检查硬盘坏道?鲁大师检测硬盘坏道方法图文介绍

    鲁大师升级之后,硬盘检测的位置发生了变化,所以好多朋友都不知道如何检测硬盘坏道了。那么小编下面就分享一下鲁大师硬盘坏道检测方法吧 鲁大师如何检测硬盘坏道? 1、下载安装新版鲁大师之后,打开主程序界面 ...

  • 怎么检测电脑硬盘好坏?鲁大师检测硬盘好坏方法

    怎么检测电脑硬盘好坏?电脑硬盘是关键,那么我们怎么知道自己电脑的硬盘是好是坏呢?下文小编就教使用鲁大师检测硬盘好坏的方法,这是新版鲁大师的功能,一起去看下鲁大师检测硬盘好坏方法吧。 鲁大师下载地址: ...

  • 正常关机后开机自动检测硬盘的三种原因及六种解决方案

    最近有好多朋友问开机取消硬盘检测的方法,而且都强调是正常关机,但是系统每次开机时便会自动检测硬盘,如此多举的步骤总是让人觉得很烦。那么遇到这种问题,完全可以按照以下六种方案进行解决。 关于开机自动检测 ...

  • 使用鲁大师检测硬盘好坏图文教程

    硬盘是电脑硬件中,最容损坏的硬件之一,但是硬盘数据又是一台电脑中最为重要的东西。有时候,我们为了保证数据安全,除了经常备份重要数据,还需要经常检测一下硬盘好坏。怎么检测硬盘好坏呢? 目前绝大多数硬盘检 ...

  • 硬盘检测工具HD Tune怎么用 HD Tune检测硬盘图文教程

    在电脑硬件中,相比显卡、CPU、主板,硬盘是最容易出故障的硬件之一。然后硬盘中存储着我们重要的数据,因此通常我们需要使用一些专业的硬盘工具检测下硬盘健康状况如何,以便及时备份数据。对于硬盘检测工具,目 ...

  • 取消win7电脑开机检测硬盘的方法

    众所周知,win7电脑在开机的时候是会检测很多电脑数据、设备的,虽说这是一种安全的行为,但是同时也会让电脑开机的速度变得很慢,有些不必要的硬盘见测,我们不妨省略了好! 方法一、或者是你在BIOS设置中 ...

  • 取消Win7电脑开机自动检测硬盘的五大妙招

    原因分析: 1、有可能是非法关机造成的,比如直接断电; 2、硬盘出现坏道也会出现开机自动检测硬盘的现象。 3、和硬盘的分区格式有关,FAT32格式在非法关机后会在开机时要求检测硬盘,而且必须检测完毕才 ...

  • 关闭开机自动检测硬盘的两种常用方法

    关闭开机自动检测硬盘方法有很多,在本文为大家介绍常用的两种,感兴趣的朋友可以参考下,希望对大家有所帮助 方法一: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetCo ...