Windows 10 has some great data in the Registry concerning the Windows OS and it’s previous builds. This can be great for reporting, or troubleshooting.
First off reporting, I’m not going to touch that one much, but Hopefully Sherry K. will be posting something about that topic, or CM will build in native functionality. UserVoice:HERE
For Troubleshooting, I have an entire script that I run, it’s mostly specific to our environment, but I might post most of it sometime..
but a small snip about gathering Current Build, previous Builds and Install Times.
Registry:
HKLM:\SYSTEM\SETUP\SourceOS…
HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion
<# Grabs Current OS Build Info Grabs OS Upgrade History & Install Dates. Gary Blok & Thanks Jeff Scripter for help with the sorting. Thanks Google for the Covert-Function #> Function Convert-FromUnixDate ($UnixDate) { [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($UnixDate)) } [Microsoft.Win32.RegistryKey[]]$UpgradeHistory = Get-Item -Path 'HKLM:\SYSTEM\Setup\Source*' [Func[Microsoft.Win32.RegistryKey,DateTime]]$SortFunction = {param($Key)[DateTime]::FromFileTime($Key.GetValue('InstallTime'))} $UpgradeHistory = [System.Linq.Enumerable]::OrderByDescending($UpgradeHistory,$SortFunction) $CurrentOSInfo = Get-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' $InstallDate_CurrentOS = Convert-FromUnixDate $CurrentOSInfo.GetValue('InstallDate') $ReleaseID_CurrentOS = $CurrentOSInfo.GetValue('ReleaseId') $BuildUBR_CurrentOS = $($CurrentOSInfo.GetValue('CurrentBuild'))+"."+$($CurrentOSInfo.GetValue('UBR')) Write-Host "Current OS Inforamtion" -ForegroundColor Gray Write-Host " Current OS: $ReleaseID_CurrentOS - UBR (now): $BuildUBR_CurrentOS" -ForegroundColor Green Write-Host " Orginial Install Date: $InstallDate_CurrentOS" -ForegroundColor Green if ($UpgradeHistory -ne $null) { Write-Host "Previous Upgrades" -ForegroundColor Gray foreach ($History in $UpgradeHistory) { $InstallDate__History = Convert-FromUnixDate $History.GetValue('InstallDate') $ReleaseID_History = $History.GetValue('ReleaseId') $BuildUBR_History = $($History.GetValue('CurrentBuild'))+"."+$($History.GetValue('UBR')) Write-Host " Info About: $ReleaseID_History - Last UBR: $BuildUBR_History" -ForegroundColor Green Write-Host " $(($History.Name.Split("(")[1]).Trim(")")) to New Build (See Above)" -ForegroundColor Green Write-Host " Orginial Install Date of $($ReleaseID_History): $InstallDate__History" -ForegroundColor Green } }