在日常中,我们经常需要查看服务器的硬盘空间大小,如果服务器很多,查询效率就很低,今天我们来说说如何用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;$_}

 

这样是不是很有用呢?