在日常中,我们经常需要查看服务器的硬盘空间大小,如果服务器很多,查询效率就很低,今天我们来说说如何用ps的WMI属性来批量查看各硬盘的空间大小。
通常我们使用get-wmiobject -class win32_logicaldisk这个指令来查看,但是这个查看出来的是以字节标示的,很不实用,可读性很差,如下
PS> Get-WmiObject -Class Win32_LogicalDisk
DeviceID:C: DriveType: 3 ProviderName : FreeSpace:50665070592 Size:203912880128 VolumeName:Local Disk |
那我们有没有办法把字节转换成MB,或者GB呢答案是肯定的,我们只要使用如下指令即可
get-wmiobject -class win32_logicaldisk | foreach {($_.freespace)/1024/1024/1024}
这样就把空闲的硬盘空间转换成了GB的数据,如下图
这样是比上面的清晰了很多,但是却无法看到盘符,还是不知道这个空闲的空间是哪个盘符的。那有
办法显示盘符吗。当然可以。我们需要用到select这个指令,如下
get-wmiobject -class win32_logicaldisk | select name,freespace | %{$_.freespace=($_.freespace)/1024/1024/1024;$_}
是不是很强大,当然,这个是查询本机的,那我们能查询远端的计算机呢,当然,也没有问题,我们只需要加上-computername 这个参数就可以了
get-wmiobject -class win32_logicaldisk -computername "计算机名" | select name,freespace | %{$_.freespace=($_.freespace)/1024/1024/1024;$_}
这样是不是很有用呢?