Public/Functions/Invoke-OSDInfo.ps1

function Invoke-OSDInfo {
    <#
    .SYNOPSIS
    Displays OSD information, useful in an OS Deployment
 
    .DESCRIPTION
    Displays OSD information, useful in an OS Deployment
 
    .LINK
    https://github.com/OSDeploy/OSD/tree/master/Docs
    #>

    [CmdletBinding()]
    param (
        [System.Management.Automation.SwitchParameter]$Battery,
        [System.Management.Automation.SwitchParameter]$TPM
    )
    #================================================
    # Battery
    #================================================
    $Win32Battery = (Get-CimInstance -ClassName Win32_Battery -ErrorAction SilentlyContinue | Select-Object -Property *)

    if ($Win32Battery.BatteryStatus -eq 1) {
        Write-Host -ForegroundColor DarkGray "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) Battery: Device has $($Win32Battery.EstimatedChargeRemaining)% battery remaining"
    }
    #================================================
    # TPM
    #================================================
    if ($TPM -or $TPMDetails) {
        try {
            $Win32Tpm = Get-CimInstance -Namespace "ROOT\cimv2\Security\MicrosoftTpm" -ClassName Win32_Tpm

            if ($null -eq $Win32Tpm) {
                Write-Host -ForegroundColor Red "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM: Not Supported"
                Write-Host -ForegroundColor Red "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) Autopilot: Not Supported"
            }
            elseif ($Win32Tpm.SpecVersion) {
                if ($null -eq $Win32Tpm.SpecVersion) {
                    Write-Host -ForegroundColor Red "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) Unable to detect the TPM SpecVersion"
                    Write-Host -ForegroundColor Red "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) Autopilot: Not Supported"
                }

                $majorVersion = $Win32Tpm.SpecVersion.Split(",")[0] -as [int]
                if ($majorVersion -lt 2) {
                    Write-Host -ForegroundColor Red "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM version is less than 2.0"
                    Write-Host -ForegroundColor Red "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) Autopilot: Not Supported"
                }
                else {
                    Write-Host -ForegroundColor DarkGray "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM IsActivated: $($Win32Tpm.IsActivated_InitialValue)"
                    Write-Host -ForegroundColor DarkGray "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM IsEnabled: $($Win32Tpm.IsEnabled_InitialValue)"
                    Write-Host -ForegroundColor DarkGray "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM IsOwned: $($Win32Tpm.IsOwned_InitialValue)"
                    Write-Host -ForegroundColor DarkGray "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM Manufacturer: $($Win32Tpm.ManufacturerIdTxt)"
                    Write-Host -ForegroundColor DarkGray "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM Manufacturer Version: $($Win32Tpm.ManufacturerVersion)"
                    Write-Host -ForegroundColor DarkGray "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM SpecVersion: $($Win32Tpm.SpecVersion)"
                    Write-Host -ForegroundColor Green "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM 2.0: Supported"
                    Write-Host -ForegroundColor Green "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) Autopilot: Supported"
                }
            }
            else {
                Write-Host -ForegroundColor Red "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) TPM: Not Supported"
                Write-Host -ForegroundColor Red "$((Get-Date).ToString('yyyy-MM-dd-HHmmss')) Autopilot: Not Supported"
            }
        }
        catch {
        }
    }
}