public/Get-PartitionInfo.ps1

function Get-PartitionInfo {
    [CmdletBinding()]
    Param (
        [string[]]
        $ComputerName,
        [string[]]
        $DriveLetter,
        [System.Management.Automation.PSCredential]
        $Credential
    )

    $scriptblock = {
        $DriveLetter = $using:DriveLetter
        $partinfo = Get-Partition

        if ($DriveLetter){
            $partinfo = $partinfo | Where-object {$DriveLetter -contains $_.DriveLetter}
        }
        
        $partinfo | Select-Object disknumber,partitionnumber,driveletter,@{Name="SizeGB";Expression={$a = $_.size / 1GB; [math]::Round($a,2)}},type,OperationalStatus,@{Name="MaxSizeGB";Expression={if($_.driveletter){$a = (Get-PartitionSupportedSize -DriveLetter $_.driveletter).sizemax / 1GB; [math]::Round($a,2) }}},@{Name="FreeSpaceGB";Expression={if($_.driveletter){$a = (Get-Psdrive $_.driveletter).free / 1GB; [math]::Round($a,2)} }},DiskId,MbrType,GptType,isBoot

    }# end script block
        
    #Execute Scriptblock on Computername(s) with set parameters.
    $params = @{
        ScriptBlock = $scriptblock
    }
    if ($ComputerName){
        $params['ComputerName'] = $ComputerName
    }
    if ($Credential){
        $params['Credential'] = $Credential
    }
    Invoke-Command @params
    
    
}