Private/Disk/Get-VolumesByDiskNumber.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function Get-VolumesByDiskNumber {
    [CmdletBinding()]
    Param ()
        #===================================================================================================
        # Get-Partition Information
        #===================================================================================================
        $GetPartition = Get-Partition | `
        Sort-Object -Property DriveLetter | `
        Select-Object -Property DriveLetter, DiskNumber
        #===================================================================================================
        # Get-Volume Information
        #===================================================================================================
        $GetVolume = $(Get-Volume | `
        Sort-Object -Property DriveLetter | `
        Select-Object -Property DriveLetter,FileSystem,OperationalStatus,DriveType,FileSystemLabel,Size,SizeRemaining)
        #===================================================================================================
        # Create Object
        #===================================================================================================
        $Results = foreach ($Item in $GetPartition) {
            $GetVolumeProperties = $GetVolume | Where-Object {$_.DriveLetter -eq $Item.DriveLetter}
            $ObjectProperties = @{
                
                DiskNumber          = $Item.DiskNumber
                DriveLetter         = $GetVolumeProperties.DriveLetter
                FileSystem          = $GetVolumeProperties.FileSystem
                OperationalStatus   = $GetVolumeProperties.OperationalStatus
                DriveType           = $GetVolumeProperties.DriveType
                FileSystemLabel     = $GetVolumeProperties.FileSystemLabel
                Size                = $GetVolumeProperties.Size
                SizeRemaining       = $GetVolumeProperties.SizeRemaining

            }
            New-Object -TypeName PSObject -Property $ObjectProperties
        }
        #===================================================================================================
        # Return Results
        #===================================================================================================
        $Results = $Results | Sort-Object -Property DriveLetter
        $Results = $Results | Where-Object {$_.FileSystem -eq 'NTFS'}
        Return $Results
}