Functions/ConvertFrom-BuildNumber.ps1

function ConvertFrom-BuildNumber {
    <#
    .SYNOPSIS
        Converts a Microsoft Build number to a version number.
 
    .DESCRIPTION
        Takes a build number for Windows 8/Server 2012 or newer and converts it to a version number and Operatiing System.
 
    .PARAMETER Build
        Specifies the number of the Microsoft Build.
 
    .EXAMPLE
        C:\PS>ConvertFrom-BuildNumber 20348
        Example of how to use this cmdlet. This example will return Windows Server 2022.
 
    .INPUTS
        System.Int32
 
    .OUTPUTS
        System.Management.Automation.PSCustomObject
 
    .COMPONENT
        WSTools
 
    .FUNCTIONALITY
        Microsoft, Build, Version, conversion
 
    .NOTES
        Author: Skyler Hart
        Created: 2023-09-22 12:04:10
        Last Edit: 2023-09-22 12:21:16
        Other:
 
    .LINK
        https://wanderingstag.github.io
    #>

    [CmdletBinding()]
    [Alias('ConvertFrom-MicrosoftBuildNumber')]
    param(
        [Parameter(
            Mandatory=$true
        )]
        [ValidateNotNullOrEmpty()]
        [int32[]] $Build
    )

    Process {
        foreach ($BuildNumber in $Build) {
            if ($BuildNumber -eq 9200) {
                [PSCustomObject]@{
                    OS = "Windows 8 or Windows Server 2012"
                    Build = $BuildNumber
                    Version ="6.2"
                }
            }
            elseif ($BuildNumber -eq 9600) {
                [PSCustomObject]@{
                    OS = "Windows 8.1 or Windows Server 2012 R2"
                    Build = $BuildNumber
                    Version ="6.3"
                }
            }
            elseif ($BuildNumber -eq 14393) {
                [PSCustomObject]@{
                    OS = "Windows 10 or Windows Server 2016"
                    Build = $BuildNumber
                    Version ="1607"
                }
            }
            elseif ($BuildNumber -eq 15063) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="1703"
                }
            }
            elseif ($BuildNumber -eq 16299) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="1709"
                }
            }
            elseif ($BuildNumber -eq 17134) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="1803"
                }
            }
            elseif ($BuildNumber -eq 17763) {
                [PSCustomObject]@{
                    OS = "Windows 10 or Windows Server 2019"
                    Build = $BuildNumber
                    Version ="1809"
                }
            }
            elseif ($BuildNumber -eq 18362) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="1903"
                }
            }
            elseif ($BuildNumber -eq 18363) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="1909"
                }
            }
            elseif ($BuildNumber -eq 19041) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="2004"
                }
            }
            elseif ($BuildNumber -eq 19042) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="20H2 (2009)"
                }
            }
            elseif ($BuildNumber -eq 19043) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="21H1 (2103)"
                }
            }
            elseif ($BuildNumber -eq 19044) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="21H2 (2109)"
                }
            }
            elseif ($BuildNumber -eq 22000) {
                [PSCustomObject]@{
                    OS = "Windows 11"
                    Build = $BuildNumber
                    Version ="21H2 (2109)"
                }
            }
            elseif ($BuildNumber -eq 20348) {
                [PSCustomObject]@{
                    OS = "Windows Server 2022"
                    Build = $BuildNumber
                    Version ="21H2 (2109)"
                }
            }
            elseif ($BuildNumber -eq 19045) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="22H2 (2209)"
                }
            }
            elseif ($BuildNumber -eq 19046) {
                [PSCustomObject]@{
                    OS = "Windows 10"
                    Build = $BuildNumber
                    Version ="23H2 (2309)"
                }
            }
            elseif ($BuildNumber -eq 22621) {
                [PSCustomObject]@{
                    OS = "Windows 11"
                    Build = $BuildNumber
                    Version ="22H2 (2209)"
                }
            }
            elseif ($BuildNumber -eq 22631) {
                [PSCustomObject]@{
                    OS = "Windows 11"
                    Build = $BuildNumber
                    Version ="23H2 (2309)"
                }
            }
            elseif ($BuildNumber -eq 26100) {
                [PSCustomObject]@{
                    OS = "Windows 11"
                    Build = $BuildNumber
                    Version ="24H2 (2409)"
                }
            }
        }
    }
}