#Howto fetch Disk space report using Powershell
Fetch Disk space report using Powershell
Recently, I got a task to create disk utilization (Free space available in Percentage) report of 10-15 Windows 2008 Server. Disk utilization report is common in many projects where the techs have to prepare report and send it to the senior admins. Preparing such report is really a headache as you have to login to the server & check the utilization etc. which is a time consuming process. For our project I found that it takes near about 20-30 minutes to login and check the disk usage in all servers (the time will increase with increase in server count and vice versa). In this scenario PowerShell came to rescue us. In this post I am going to explain how to check disk space report using powershell
What is Powershell?
Windows PowerShell is a task automation and configuration management framework from Microsoft. In PowerShell, administrative tasks are generally performed by cmdlets (pronounced command-lets), which are specialized .NET classes implementing a particular operation. Sets of cmdlets may be combined into scripts, executables (which are standalone applications), or by instantiating regular .NET classes (or WMI/COM Objects).These work by accessing data in different data stores, like the file system or registry, which are made available to the PowerShell runtime via Windows PowerShell providers.
Powershell for Calculating Disk Utilization
To calculate the Disk Utilization, we are going to use “win32_logicaldisk” class of the Powershell management cmdlet “Get-WmiObject”.
1) Open powershell windows in elevated mode
2) Execute the below command to get the list of all the partitions, volume name, size, free space etc.
Get-WmiObject win32_logicaldisk -computer <computer-name>
3) Now using the “select-object” tell powershell to show the value of objects DeviceID, VolumeName, Size and FreeSpace
Get-WmiObject win32_logicaldisk -computer <computer-name> | select-object DeviceID, VolumeName,Size,FreeSpace
4) Next step is to see the percentage free space. Using @{Name=””,Expression={}}:
Get-WmiObject win32_logicaldisk -computer <computername> |select-object DeviceID, VolumeName,@{Name=”PCTFreeSpace”;Expression={$_.FreeSpace/$_.Size*100}}
Powershell to fetch Disk information from Remote Servers
To fetch the Free space percentage of remote servers, you will just have to add those computers in the above command. So the command will be
Get-WmiObject win32_logicaldisk -computer <computername 1>, <computername 2>, <computername 3>, <computername N> |select-object DeviceID, VolumeName,@{Name=”PCTFreeSpace”;Expression={$_.FreeSpace/$_.Size*100}}
You can see in the above screenshot that Free space (in Percentage) of the servers is listed.
Online Resource to learn Powershell
Check “Microsoft Virtual Academy [MVA]” Jumpstart training to learn basics of Powershell scripting “Getting Started with Powershell 3.0”. The training is conducted by “Jeffery Snover” (Inventor of PowerShell).
You must log in to post a comment.