Description

The Get-DiskDrive function is an advanced function to be used in Windows PowerShell. You need to load the function first, or include it inside an additional script. Use Get-Help Get-DiskDrive to find basic information about the function. Use Get-Help Get-DiskDrive -full to see complete help information. Use Get-Help Get-DiskDrive -example to see only examples of using the function. This function is discussed on the Hey Scripting Guy! blog article from June 26, 2011.

PowerShell
Edit|Remove
Function Get-DiskDrive 
{ 
  <# 
   .Synopsis 
    This function returns capacity and freespace in gigs, and percent free 
   .Description 
    This function returns capacity and freespace in gigs, and percent free. By  
    default it returns the system drive (normally drive c:) 
   .Example 
    Get-DiskDrive 
    Returns capacity and free space in gigabytes. It also returns percent free, 
    and the drive letter and drive label of the system drive on the local machine. 
   .Example 
    Get-DiskDrive -drive e: -computer berlin 
    Returns capacity and free space in gigabytes of the e: drive. It also returns 
    percent free, and the drive letter and drive label of the system drive on the  
    remote machine named berlin. 
   .Example 
    Get-DiskDrive -drive e: -computer berlin, munich 
    Returns capacity and free space in gigabytes of the e: drive. It also returns 
    percent free, and the drive letter and drive label of the system drive on two  
    remote machines named berlin and munich. 
   .Example 
    Get-DiskDrive -drive c:, e: -computer berlin, munich 
    Returns capacity and free space in gigabytes of the C: and e: drive. It also  
    returns percent free, and the drive letter and drive label of the system drive  
    on two remote machines named berlin and munich. 
   .Example 
    "c:","d:","f:" | % { Get-DiskDrive $_ } 
    Returns information about c, d, and f drives on local computer.  
   .Example 
    Get-DiskDrive -d "c:","d:","f:" 
    Returns information about c, d, and f drives on local computer. Same command 
    as the previous example - but easier to read. But on my computer this is a  
    bit slower than the previous command (40 milliseconds). 
   .Parameter drive 
    The drive letter to query.  Defaults to system drive (normally c:) 
   .Parameter computername 
    The name of the computer to query. Defaults to local machine.  
   .Notes 
    NAME:  Example- 
    AUTHOR: ed wilson, msft 
    LASTEDIT: 06/02/2011 16:12:08 
    KEYWORDS: 
    HSG: HSG-06-26-2011 
   .Link 
    Http://www.ScriptingGuys.com/blog 
 #Requires -Version 2.0 
 #> 
 Param( 
  [string[]]$drive = $env:SystemDrive, 
  [string[]]$computername = $env:COMPUTERNAME 
 ) #end param 
 Foreach($d in $drive) 
 { 
  Get-WmiObject -Class win32_Volume -ComputerName $computername -Filter "DriveLetter = '$d'" | 
  Select-object DriveLetter, Label, FileSystem, PageFilePresent,  
  @{Name = "ComputerName"; Expression = {$_.__Server} }, 
  @{Name = "Capacity(GB)"; Expression = {$_.capacity / 1GB} },  
  @{Name = "FreeSpace(GB)"; Expression = {$_.Freespace / 1GB} }, 
  @{Name = "PercentFree"; Expression = { ($_.FreeSpace / $_.Capacity)*100 } } 
 } # end foreach 
  
} #end function get-diskdrive