Public/Disk/Get-Volume.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<#
.SYNOPSIS
Get-Volume with IsUSB Property
 
.DESCRIPTION
Get-Volume with IsUSB Property
 
.LINK
https://osd.osdeploy.com/module/functions/disk/get-volume
 
.NOTES
#>

function Get-Volume.osd {
    [CmdletBinding()]
    param ()
    #=================================================
    # PSBoundParameters
    #=================================================
    $IsConfirmPresent   = $PSBoundParameters.ContainsKey('Confirm')
    $IsForcePresent     = $PSBoundParameters.ContainsKey('Force')
    $IsVerbosePresent   = $PSBoundParameters.ContainsKey('Verbose')
    #=================================================
    # Get Variables
    #=================================================
    $GetPartition = Get-Partition.usb
    $GetVolume = Get-Volume | Sort-Object DriveLetter
    #=================================================
    # Add Property IsUSB
    #=================================================
    foreach ($Volume in $GetVolume) {
        if ($Volume.Path -in $($GetPartition).AccessPaths) {
            $Volume | Add-Member -NotePropertyName 'IsUSB' -NotePropertyValue $true -Force
        } else {
            $Volume | Add-Member -NotePropertyName 'IsUSB' -NotePropertyValue $false -Force
        }
    }
    #=================================================
    # Return
    #=================================================
    Return $GetVolume | Sort-Object DriveLetter | Select-Object -Property DriveLetter, FileSystemLabel, FileSystem, `
                        @{Name='SizeGB';Expression={[int]($_.Size / 1000000000)}}, `
                        @{Name='SizeRemainingGB';Expression={[int]($_.SizeRemaining / 1000000000)}}, `
                        @{Name='SizeRemainingMB';Expression={[int]($_.SizeRemaining / 1000000)}}, `
                        IsUSB, DriveType, OperationalStatus, HealthStatus
    #=================================================
}
<#
.SYNOPSIS
Get-Volume for Fixed Disks
 
.DESCRIPTION
Get-Volume for Fixed Disks
 
.LINK
https://osd.osdeploy.com/module/functions/disk/get-volume
 
.NOTES
21.3.3 Added SizeGB and SizeRemainingMB
21.2.25 Initial Release
#>

function Get-Volume.fixed {
    [CmdletBinding()]
    param ()
    #=================================================
    # Return
    #=================================================
    Return (Get-Volume.osd | Where-Object {$_.IsUSB -eq $false})
    #=================================================
}
<#
.SYNOPSIS
Get-Volume for USB Disks
 
.DESCRIPTION
Get-Volume for USB Disks
 
.LINK
https://osd.osdeploy.com/module/functions/disk/get-volume
 
.NOTES
21.3.3 Added SizeGB and SizeRemainingMB
21.2.25 Initial Release
#>

function Get-Volume.usb {
    [CmdletBinding()]
    param ()
    #=================================================
    # Return
    #=================================================
    Return (Get-Volume.osd | Where-Object {$_.IsUSB -eq $true})
    #=================================================
}