PowerShell – Disk Space GUI Tool

PowerShell – Disk Space GUI Tool – Sharing a useful PowerShell GUI script to check disk drive usage along with a graph.

Copy and paste the below code on Powershell-ISE for better execution.

 Tool Details :The layout details are as follows


When we made a wrong entries, message box will popup.


Right server will lead to a grid with data populated along with graph which represents its usage


You can also download the code: PowerShellGUI – DiskSpace – Tool

Note:- Works with Powershell 2.0 and above.


Code:- Copy and Paste the below code


function OnApplicationLoad { 

 if([Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization") -eq $null) 
  #Microsoft Chart Controls are not installed 
  [void][reflection.assembly]::Load("System.Windows.Forms, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089") 
  [void][System.Windows.Forms.MessageBox]::Show("Microsoft Chart Controls for Microsoft .NET 3.5 Framework is required","Microsoft Chart Controls Required") 
  #Open the URL 
  return $false 

 return $true #return true for success or false for failure 

function OnApplicationExit { 
 $script:ExitCode = 0 #Set the exit code for the Packager 

#endregion Application Functions 

# Generated Form Function 
function Call-Disk_Space_Chart_pff { 

 #region Import the Assemblies 
 [void][reflection.assembly]::Load("System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089") 
 [void][reflection.assembly]::Load("System.Windows.Forms, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089") 
 [void][reflection.assembly]::Load("System.Data, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089") 
 [void][reflection.assembly]::Load("System.Drawing, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") 
 [void][reflection.assembly]::Load("mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089") 
 [void][reflection.assembly]::Load("System.Windows.Forms.DataVisualization, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35") 
 #endregion Import Assemblies 

 #region Generated Form Objects 
$formDiskSpacePieChart = New-Object System.Windows.Forms.Form 
#$buttonSave = New-Object System.Windows.Forms.Button 
$dataGrid1 = New-Object System.Windows.Forms.DataGrid  
$chart1 = New-Object System.Windows.Forms.DataVisualization.Charting.Chart 
#$savefiledialog1 = New-Object System.Windows.Forms.SaveFileDialog 
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
#endregion Generated Form Objects 
$btnRefresh = New-Object System.Windows.Forms.Button 
$btngetdata=New-Object System.Windows.Forms.Button 
$rtbPerfData = New-Object System.Windows.Forms.RichTextBox 
#$pictureBox1 = New-Object System.Windows.Forms.PictureBox 
$lblServicePack = New-Object System.Windows.Forms.Label 
$lblDBName= New-Object System.Windows.Forms.Label 
$lblOS = New-Object System.Windows.Forms.Label 
$statusBar1 = New-Object System.Windows.Forms.StatusBar 
$btnClose = New-Object System.Windows.Forms.Button 
#$comboServers = New-Object System.Windows.Forms.ComboBox 
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
$txtComputerName = New-Object System.Windows.Forms.TextBox 
$dataGrid1 = New-Object System.Windows.Forms.DataGrid  

 function Load-Chart 
  Param( #$XPoints, $YPoints, $XTitle, $YTitle, $Title, $ChartStyle) 
     $SeriesIndex = 0 
     $TitleIndex = 0, 

  $ChartAreaIndex = 0 
   $name = "ChartArea " + ($ChartControl.ChartAreas.Count + 1).ToString(); 
   $ChartArea = $ChartControl.ChartAreas.Add($name) 
   $ChartAreaIndex = $ChartControl.ChartAreas.Count - 1 

   $name = "Series " + ($ChartControl.Series.Count + 1).ToString(); 
   $Series = $ChartControl.Series.Add($name)  
   $SeriesIndex = $ChartControl.Series.Count - 1 

   $Series.ChartArea = $ChartArea.Name 

    $name = "Title " + ($ChartControl.Titles.Count + 1).ToString(); 
    $TitleObj = $ChartControl.Titles.Add($name) 
    $TitleIndex = $ChartControl.Titles.Count - 1  
    $TitleObj.DockedToChartArea = $ChartArea.Name 
    $TitleObj.IsDockedInsideChartArea = $false 
   if($ChartControl.ChartAreas.Count -eq  0) 
    $name = "ChartArea " + ($ChartControl.ChartAreas.Count + 1).ToString(); 
    $ChartAreaIndex = $ChartControl.ChartAreas.Count - 1 

   if($ChartControl.Series.Count -eq 0) 
    $name = "Series " + ($ChartControl.Series.Count + 1).ToString(); 
    $Series = $ChartControl.Series.Add($name)  
    $SeriesIndex = $ChartControl.Series.Count - 1 
    $Series.ChartArea = $ChartControl.ChartAreas[0].Name 

  $Series = $ChartControl.Series[$SeriesIndex] 
  $ChartArea = $ChartControl.ChartAreas[$Series.ChartArea] 


   if($ChartControl.Titles.Count -eq 0) 
    $name = "Title " + ($ChartControl.Titles.Count + 1).ToString(); 
    $TitleIndex = $ChartControl.Titles.Count - 1 
    $TitleObj.DockedToChartArea = $ChartArea.Name 
    $TitleObj.IsDockedInsideChartArea = $false 

   $ChartControl.Titles[$TitleIndex].Text = $Title 

   $Series.ChartType = $ChartType 

   $ChartArea.AxisX.Title = $XTitle 

   $ChartArea.AxisY.Title = $YTitle 

  if($XPoints -isnot [Array] -or $XPoints -isnot [System.Collections.IEnumerable]) 
   $array = New-Object System.Collections.ArrayList 
   $XPoints = $array 

  if($YPoints -isnot [Array] -or $YPoints -isnot [System.Collections.IEnumerable]) 
   $array = New-Object System.Collections.ArrayList 
   $YPoints = $array 

  $Series.Points.DataBindXY($XPoints, $YPoints) 


 function Clear-Chart 
  Param (   
  [Parameter(Position=2, Mandatory=$false)] 

  $count = 0  
   $count = 1 

  while($ChartControl.Series.Count -gt $count) 
   $ChartControl.Series.RemoveAt($ChartControl.Series.Count - 1) 

  while($ChartControl.ChartAreas.Count -gt $count) 
   $ChartControl.ChartAreas.RemoveAt($ChartControl.ChartAreas.Count - 1) 

  while($ChartControl.Titles.Count -gt $count) 
   $ChartControl.Titles.RemoveAt($ChartControl.Titles.Count - 1) 

  if($ChartControl.Series.Count -gt 0) 

  #TODO: Initialize Form Controls here 

 function Load-PieChart 
[string[]]$servers = "$ENV:COMPUTERNAME" 
  foreach ($server in $servers) { 
  #Get Disk space using WMI and make sure it is an array 
  $Disks = @(Get-WMIObject -Namespace "root\cimv2" -class Win32_LogicalDisk -Impersonation 3 -ComputerName $server -filter "DriveType=3" ) 

  #Remove all the current charts 
  Clear-Chart $chart1 

  #Loop through each drive 
  foreach($disk in $Disks) 
   $UsedSpace =(($disk.size - $disk.freespace)/1gb) 
   $FreeSpace = ($disk.freespace/1gb) 

   #Load a Chart for each Drive 
   Load-Chart $chart1 -XPoints ("Used ({0:N1} GB)" -f $UsedSpace), ("Free Space ({0:N1} GB)" -f $FreeSpace) -YPoints $UsedSpace, $FreeSpace -ChartType "Bar" -Title ("Volume: {0} ({1:N1} GB)" -f $disk.deviceID, ($disk.size/1gb) ) -Append  

  #Set Custom Style 
  foreach ($Series in $chart1.Series) 
   $Series.CustomProperties = "PieDrawingStyle=Concave" 

function Get-DiskDetails 
[string[]]$ComputerName = "LocalHost" 
$Object =@() 
$array = New-Object System.Collections.ArrayList       
foreach ($Computer in $ComputerName) { 
if(Test-Connection -ComputerName $Computer -Count 1 -ea 0) { 
Write-Verbose "$Computer online" 
$D=Get-WmiObject win32_logicalDisk -ComputerName $Computer |select-object DeviceID, VolumeName,FreeSpace,Size,driveType |?{$_.DriveType -eq 3}
foreach($disk in $D) 
$TotalSize = $Disk.Size /1Gb -as [int] 
$InUseSize = ($Disk.Size /1Gb -as [int]) – ($Disk.Freespace / 1Gb -as [int]) 
$FreeSpaceGB = $Disk.Freespace / 1Gb -as [int] 
$FreeSpacePer = ((($Disk.Freespace /1Gb -as [float]) / ($Disk.Size / 1Gb -as [float]))*100) -as [int] 

$Object += New-Object PSObject -Property @{Name= $Computer.ToUpper();DeviceID= $Disk.DeviceID;VolumeName=$Disk.VolumeName;SizeGB=$TotalSize;InUseGB=$InUseSize;FreeSpaceGB=$FreeSpaceGB;PercentageGB=$FreeSpacePer 


$column1 = @{expression="Name"; width=30; label="Name"; alignment="left"} 
$column2 = @{expression="DeviceID"; width=15; label="DeviceID"; alignment="left"} 
$column3 = @{expression="VolumeName"; width=15; label="VolumeName"; alignment="left"} 
$column4 = @{expression="SizeGB"; width=15; label="SizeGB"; alignment="left"} 
$column5 = @{expression="InUseGB"; width=15; label="InUseGB"; alignment="left"} 
$column6 = @{expression="FreeSpaceGB"; width=15; label="FreeSpaceGB"; alignment="left"} 
$column7 = @{expression="PercentageGB"; width=15; label="PercentageGB"; alignment="left"} 

#$Object|format-table $column1, $column2, $column3 ,$column4, $column5, $column6,$column7 

$object|format-table $column1, $column2, $column3 ,$column4 ,$column5 ,$column6,$column7 
$dataGrid1.DataSource = $array  


        $statusBar1.text="Getting Disk Space Details Data..please wait" 
        if(Test-Connection -ComputerName $txtComputerName.text -Count 1 -ea 0) {  
        $data=Get-DiskDetails -ComputerName $txtComputerName.text | Out-String 
        Load-PieChart -servers $txtComputerName.text  
        [Windows.Forms.MessageBox]::Show(“Unable to connect to the server!!") 



 # --End User Generated Script-- 
 # Generated Events 

  #Correct the initial state of the form to prevent the .Net maximized form issue 
  $formDiskSpacePieChart.WindowState = $InitialFormWindowState 

 #region Generated Form Code 
 # formDiskSpacePieChart 
 $formDiskSpacePieChart.ClientSize = New-Object System.Drawing.Size(575,575) 
 $formDiskSpacePieChart.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
 $formDiskSpacePieChart.MinimumSize = New-Object System.Drawing.Size(300,300) 
 $formDiskSpacePieChart.Name = "formDiskSpacePieChart" 
 $formDiskSpacePieChart.Text = "Disk Space Pie Chart" 
 $formDiskSpacePieChart.ClientSize = New-Object System.Drawing.Size(600,600) 
 $formDiskSpacePieChart.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
 $formDiskSpacePieChart.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::SizableToolWindow  
 $formDiskSpacePieChart.Name = "form1" 
 $formDiskSpacePieChart.Text = "Disk Space Information" 

$System_Drawing_Size = New-Object System.Drawing.Size  
$System_Drawing_Size.Width = 575 
$System_Drawing_Size.Height = 125 
$dataGrid1.Size = $System_Drawing_Size  
$dataGrid1.DataBindings.DefaultDataSourceUpdateMode = 0  
$dataGrid1.HeaderForeColor = [System.Drawing.Color]::FromArgb(255,0,0,0)  
$dataGrid1.Name = "dataGrid1"  
$dataGrid1.DataMember = ""  
$dataGrid1.TabIndex = 0  
$System_Drawing_Point = New-Object System.Drawing.Point  
$System_Drawing_Point.X =13  
$System_Drawing_Point.Y = 62 
$dataGrid1.Location = $System_Drawing_Point  

$dataGrid1.CaptionText='Disk Details' 

    # btnRefresh 
    $btnRefresh.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
    $btnRefresh.Enabled = $TRUE 
    $btnRefresh.Location = New-Object System.Drawing.Point(230,35) 
    $btnRefresh.Name = "btnRefresh" 
    $btnRefresh.Size = New-Object System.Drawing.Size(95,20) 
    $btnRefresh.TabIndex = 7 
    $btnRefresh.Text = "GetDiskSpace" 
    $btnRefresh.UseVisualStyleBackColor = $True 

    # btnClose 

    $btnClose.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
    $btngetdata.Enabled = $TRUE 
    $btnClose.Location = New-Object System.Drawing.Point(373,35) 
    $btnClose.Name = "btnClose" 
    $btnClose.Size = New-Object System.Drawing.Size(95,20) 
    $btnClose.TabIndex = 3 
    $btnClose.Text = "Close" 
    $btnClose.UseVisualStyleBackColor = $True 

    # lblDBName 
    $lblDBName.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
    $lblDBName.Font = New-Object System.Drawing.Font("Lucida Console",8.25,1,3,1) 
    $lblDBName.Location = New-Object System.Drawing.Point(13,10) 
    $lblDBName.Name = "lblDBName" 
    $lblDBName.Size = New-Object System.Drawing.Size(178,23) 
    $lblDBName.TabIndex = 0 
    $lblDBName.Text = "Enter Server Name " 
    $lblDBName.Visible = $TRUE 

    $txtComputerName.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
    $txtComputerName.Location = New-Object System.Drawing.Point(13, 35) 
    $txtComputerName.Name = "txtComputerName" 
    $txtComputerName.TabIndex = 1 
    $txtComputerName.Size = New-Object System.Drawing.Size(200,70) 
    # lblServicePack 
    $lblServicePack.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
    $lblServicePack.Font = New-Object System.Drawing.Font("Lucida Console",8.25,1,3,1) 
    $lblServicePack.Location = New-Object System.Drawing.Point(13,100) 
    $lblServicePack.Name = "lblServicePack" 
    $lblServicePack.Size = New-Object System.Drawing.Size(278,23) 
    $lblServicePack.TabIndex = 0 
    $lblServicePack.Text = "ServicePack" 
    $lblServicePack.Visible = $False 
    # lblOS 
    $lblOS.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
    $lblOS.Font = New-Object System.Drawing.Font("Lucida Console",8.25,1,3,1) 
    $lblOS.Location = New-Object System.Drawing.Point(12,77) 
    $lblOS.Name = "lblOS" 
    $lblOS.Size = New-Object System.Drawing.Size(278,23) 
    $lblOS.TabIndex = 2 
    $lblOS.Text = "Service Information" 
    $lblOS.Visible = $False 
    # statusBar1 
    $statusBar1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
    $statusBar1.Location = New-Object System.Drawing.Point(0,365) 
    $statusBar1.Name = "statusBar1" 
    $statusBar1.Size = New-Object System.Drawing.Size(390,22) 
    $statusBar1.TabIndex = 5 
    $statusBar1.Text = "statusBar1" 

 # chart1 
 $chart1.Anchor = [System.Windows.Forms.AnchorStyles]::Top -bor [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Left -bor [System.Windows.Forms.AnchorStyles]::Right  
 $chart1.BackGradientStyle = [System.Windows.Forms.DataVisualization.Charting.GradientStyle]::TopBottom  
 $System_Windows_Forms_DataVisualization_Charting_ChartArea_1 = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea 
 $System_Windows_Forms_DataVisualization_Charting_ChartArea_1.Area3DStyle.Enable3D = $True 
 $System_Windows_Forms_DataVisualization_Charting_ChartArea_1.AxisX.Title = "Disk" 
 $System_Windows_Forms_DataVisualization_Charting_ChartArea_1.AxisY.Title = "Disk Space (MB)" 
 $System_Windows_Forms_DataVisualization_Charting_ChartArea_1.Name = "ChartArea1" 

 $chart1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation  
 $chart1.Location = New-Object System.Drawing.Point(13,200) 
 $chart1.Name = "chart1" 
 $System_Windows_Forms_DataVisualization_Charting_Series_2 = New-Object System.Windows.Forms.DataVisualization.Charting.Series 
 $System_Windows_Forms_DataVisualization_Charting_Series_2.ChartArea = "ChartArea1" 
 $System_Windows_Forms_DataVisualization_Charting_Series_2.ChartType = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]::Pie  
 $System_Windows_Forms_DataVisualization_Charting_Series_2.CustomProperties = "DrawingStyle=Cylinder, PieDrawingStyle=Concave" 
 $System_Windows_Forms_DataVisualization_Charting_Series_2.IsVisibleInLegend = $False 
 $System_Windows_Forms_DataVisualization_Charting_Series_2.Legend = "Legend1" 
 $System_Windows_Forms_DataVisualization_Charting_Series_2.Name = "Disk Space" 

 $chart1.Size = New-Object System.Drawing.Size(575,350) 
 $chart1.TabIndex = 0 
 $chart1.Text = "chart1" 
 $System_Windows_Forms_DataVisualization_Charting_Title_3 = New-Object System.Windows.Forms.DataVisualization.Charting.Title 
 $System_Windows_Forms_DataVisualization_Charting_Title_3.Alignment = [System.Drawing.ContentAlignment]::TopCenter  
 $System_Windows_Forms_DataVisualization_Charting_Title_3.DockedToChartArea = "ChartArea1" 
 $System_Windows_Forms_DataVisualization_Charting_Title_3.IsDockedInsideChartArea = $False 
 $System_Windows_Forms_DataVisualization_Charting_Title_3.Name = "Title1" 
 $System_Windows_Forms_DataVisualization_Charting_Title_3.Text = "Disk Space" 


 #Save the initial state of the form 
 $InitialFormWindowState = $formDiskSpacePieChart.WindowState 
 #Init the OnLoad event to correct the initial state of the form 
 #Show the Form 
 return $formDiskSpacePieChart.ShowDialog() 

} #End Function 

#Call OnApplicationLoad to initialize 
if(OnApplicationLoad -eq $true) 
 #Create the form 
 Call-Disk_Space_Chart_pff | Out-Null 
 #Perform cleanup 

About Prashanth Jayaram

DB Technologist, Author, Blogger, Service Delivery Manager at CTS, Automation Expert, Technet WIKI Ninja, MVB and Powershell Geek My Profile: https://social.technet.microsoft.com/profile/prashanth jayaram/ http://www.sqlshack.com/author/prashanth/ http://codingsight.com/author/prashanthjayaram/ https://www.red-gate.com/simple-talk/author/prashanthjayaram/ http://www.sqlservercentral.com/blogs/powersql-by-prashanth-jayaram/ Connect Me: Twitter @prashantjayaram GMAIL powershellsql@gmail.com The articles are published in: http://www.ssas-info.com/analysis-services-articles/ http://db-pub.com/ http://www.sswug.org/sswugresearch/community/
This entry was posted in Uncategorized and tagged , . Bookmark the permalink.

21 Responses to PowerShell – Disk Space GUI Tool

  1. Pingback: Copy/Transfer file using Powershell | Lance's IT Journal

  2. Pingback: How to find OS start time with Powershell | Lance's IT Journal

  3. Ken says:

    Thanks for the code. When I run PowerShell I do Shift-RightClick on Windows PowerShell ISE and select “Run as a different User” and specify my administrator account. I need to do this as our corporate security has us use a normal user account “Ken” on our desktops and an administrator account “A-Ken” on servers. When I run your code the graphs appear normally but the disk details are missing. The output window of PowerShell ISE contains the following errors:

    Method invocation failed because [System.Management.Automation.PSObject] doesn’t contain a method named ‘op_Addition’.
    At line:279 char:1
    + $Object += New-Object PSObject -Property @{Name= $Computer.ToUpper();DeviceID= $ …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

    My administrator account has access to the servers I’ve tested your application with so I’m not sure where the problem is. Do you have any suggestions on what’s wrong?


    • Can you copy and paste the below code and run it in PowerShell-ISE?

      function Get-DiskDetails
      [string[]]$ComputerName = “$ENV:COMPUTERNAME”
      $script:Object =@()
      $script:array = New-Object System.Collections.ArrayList
      foreach ($Computer in $ComputerName) {
      if(Test-Connection -ComputerName $Computer -Count 1 -ea 0) {
      Write-Verbose “$Computer online”
      $D=Get-WmiObject win32_logicalDisk -ComputerName $Computer |select-object DeviceID, VolumeName,FreeSpace,Size| where {$_.DeviceID -ne “A:” -and $_.DeviceID -ne “D:”}
      foreach($disk in $D)
      $TotalSize = $Disk.Size /1Gb -as [int]
      $InUseSize = ($Disk.Size /1Gb -as [int]) – ($Disk.Freespace / 1Gb -as [int])
      $FreeSpaceGB = $Disk.Freespace / 1Gb -as [int]
      $FreeSpacePer = ((($Disk.Freespace /1Gb -as [float]) / ($Disk.Size / 1Gb -as [float]))*100) -as [int]

      $Object += New-Object PSObject -Property @{
      Name= $Computer.ToUpper();
      DeviceID= $Disk.DeviceID;


      $column1 = @{expression=”Name”; width=30; label=”Name”; alignment=”left”}
      $column2 = @{expression=”DeviceID”; width=15; label=”DeviceID”; alignment=”left”}
      $column3 = @{expression=”VolumeName”; width=15; label=”VolumeName”; alignment=”left”}
      $column4 = @{expression=”SizeGB”; width=15; label=”SizeGB”; alignment=”left”}
      $column5 = @{expression=”InUseGB”; width=15; label=”InUseGB”; alignment=”left”}
      $column6 = @{expression=”FreeSpaceGB”; width=15; label=”FreeSpaceGB”; alignment=”left”}
      $column7 = @{expression=”PercentageGB”; width=15; label=”PercentageGB”; alignment=”left”}

      #$Object|format-table $column1, $column2, $column3 ,$column4, $column5, $column6,$column7

      $object|format-table $column1, $column2, $column3 ,$column4 ,$column5 ,$column6,$column7
      #$dataGrid1.DataSource = $array


    • The code is updated. Please use the latest code and let me know in case of any issues.

      Thanks for letting me know – Prashanth

      • Ken says:

        Sorry, I hate to be a pain but I’ve found another problem. I have a server with three local disks (C:, D:, and E:) plus a DVD drive (F:). There is no disk in the DVD drive at this time. When I run your code, I see the Disk Details grid for C:, E: and F: – for some reason D: is missing. I have confirmed that the numbers (Size, InUse, etc) are all correct – it is just that one drive is missing. Oddly, the graph section works perfectly and shows data for drives C:, D: and E: with the correct size information. F: is missing but that’s OK since there really is no F: without a disk loaded.

        I connected to a second server with two local drives (C: and D:), two drives connecting to a SAN (F: and G:) and an empty DVD drive (J:). (There is no E: drive.) The Disk Details section shows C:, F:, G: and J:. Drives D: is are missing. Like the first server, the graph section works perfectly and shows for the disks (C:, D:, F: and G:) and not the DVD drive (F:). I have confirmed that all values displayed are correct.

        In both cases the Disk Details section has missed the second drive. Can you look into this please?


      • Just modify this piece of code like below

        Current code –
        $D=Get-WmiObject win32_logicalDisk -ComputerName $Computer |select-object DeviceID, VolumeName,FreeSpace,Size| where {$_.DeviceID -ne “A:” -and $_.DeviceID -ne “D:”}

        Modified code:-

        $D=Get-WmiObject win32_logicalDisk -ComputerName $Computer |select-object DeviceID, VolumeName,FreeSpace,Size| where {$_.DeviceID -ne “A:” }

      • I’ve updated the code…use this new version. Let me know in case of any issues – Prashanth

  4. Ken says:

    That fixed it. Just one more set of recommendations that I think will make the output look a little better… The columns of the Disk Details section are:

    InUseGB, Name, VolumeName, SizeGB, FreeSpaceGB, DeviceID, PercentageGB

    I would suggested that the column headings be changed as follows:
    > “InUseGB” be changed to “UsedGB”
    > “Name” be changed to “Server”
    > “SizeGB” be changed to “TotalGB”
    > “FreeSpaceGB” be changed to “FreeGB”
    > “PertentageGB” be change “PercentFree”

    Finally, I suggest the order of the columns be changed so they appear as:

    Server, DeviceID, VolumeName, TotalGB, UsedGB, FreeGB, PercentFree

    Thanks for the code – it is very useful app you’ve written.


  5. site says:

    Great delivery. Great site justifications. Maintain the amazing work.

    This particular post site is priceless.
    Where could I learn more?

  6. botox Radom says:

    Hi there, botox Radom merely wanted to tell you, I liked this post botox Radom.
    It had been helpful botox Radom. Carry on submitting!

  7. Incredible points. Outstanding /fans/AnnaR1982R/discussion transport medyczny Kraków questions.

    Keep up the good work.

    This kind of text transport medyczny Lublin is priceless.
    Where may I read more?

  8. strony www says:

    Hi, strony www simply wanted to mention, I liked this blog post strony www.
    This had been helpful strony www. Continue

  9. 6454 says:

    What’s up, 6454 I would like to say, I enjoyed this post 51655.

    It was pretty inspiring p10706. Continue posting!

  10. Hi there, transport medyczny Szczecin merely wanted to mention, I enjoyed this post transport medyczny Szczecin.
    That it was inspiring transport medyczny Szczecin. Keep going publishing!

  11. Shivaprasad Namani says:

    Can we have a list of computers in a excel/txt and the output grid data of all the listed computers to the same excel by grouping them

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s