Software made by good programmers will use the OS major and minor version numbers. The quickest way being the .NET System.Environment OSVersion property.
PowerShell way:
PS C:\Windows\system32> [System.Environment]::OSVersion
Platform ServicePack Version VersionString
-------- ----------- ------- -------------
Win32NT 6.4.9841.0 Microsoft Windows NT 6.4.9..
But since .NET has not always been around, or widely used in the 95/98 days, a lot of people use the older WMI method. The WMI method exposes the OS name, which some people use to determine the OS, and not the version number.
PS C:\Windows\system32> Get-WmiObject Win32_OperatingSystem | fl *
PSComputerName : xxxxxx
Status : OK
Name : Microsoft Windows Technical Preview
So it is possible that part of the reason for skipping 9 is to avoid confusion within bad code. I have not heard this in any official capacity so no idea how true it is.
PowerShell way:
PS C:\Windows\system32> [System.Environment]::OSVersion
Platform ServicePack Version VersionString
-------- ----------- ------- -------------
Win32NT 6.4.9841.0 Microsoft Windows NT 6.4.9..
But since .NET has not always been around, or widely used in the 95/98 days, a lot of people use the older WMI method. The WMI method exposes the OS name, which some people use to determine the OS, and not the version number.
PS C:\Windows\system32> Get-WmiObject Win32_OperatingSystem | fl *
PSComputerName : xxxxxx
Status : OK
Name : Microsoft Windows Technical Preview
So it is possible that part of the reason for skipping 9 is to avoid confusion within bad code. I have not heard this in any official capacity so no idea how true it is.
Comment