Public/Hardware/Get-GPUInfo.ps1

<#
Copyright © 2024 Integris. For internal company use only. All rights reserved.
#>


FUNCTION Get-GPUInfo {
    <#
    .SYNOPSIS
    Retrieves and displays information about display adapters on the system.
 
    .DESCRIPTION
    This function collects detailed information about each display adapter, including model name, vendor, amount of VRAM, driver version, and driver release date.
 
    .PARAMETER VideoAdapters
    The collection of video adapters retrieved from the win32_videocontroller class.
 
    .EXAMPLE
    Get-DisplayAdapter
 
    This command retrieves and displays information about all display adapters on the system.
 
    .NOTES
    This function uses CIM instances to gather display adapter information and may require appropriate permissions to execute.
    #>


    [CmdletBinding()]
    PARAM ( )

    $Results = @()

    $VideoAdapters = Get-CIMInstance win32_videocontroller -ErrorAction SilentlyContinue 

    FOREACH ($VideoAdapter in $VideoAdapters) {
        $DriverDate = $VideoAdapter.DriverDate

        $Results += New-Object PSObject -WarningAction SilentlyContinue -Property @{
            ModelName = $VideoAdapter.Name
            GBsOfVRAM = $VideoAdapter.AdapterRAM / 1GB
            Vendor = $VideoAdapter.AdapterCompatibility
            DriverVersion = $VideoAdapter.DriverVersion
            DriverReleaseDate = $DriverDate
        }
    }

    RETURN $Results | Select-Object ModelName, Vendor, GBsOfVRAM, DriverVersion, DriverReleaseDate
}
New-Alias -Name Get-GPUDevice -Value Get-DisplayAdapter
New-Alias -Name Get-VideoAdapter -Value Get-DisplayAdapter