Tak to je psycho. Při spuštění ver v příkazové řáce, nebo winver do okénka to hlásí nově verzi 10.0 build 10074, stejně jako WMI tabulka Win32_OperatingSystem a její hodnota Version.
Zatímco v registrech v klíči
HKLM\Software\Microsoft\Windows NT\CurrentVersion
CurrentVersion = REG_SZ = 6.3
CurrentBuild = REG_SZ = 10074
V předchozím buildu byla všude verze 6.4. Zřetelně se borci zaměřují na produkci mendejů, aby nemuseli nic dělat a místo toho filosofují nad kravinou, jakou verzi mají zvolit. Když už jsme u filosofie, tak tvrdím, že ta jednoduchá volba čísla 10 bude znamenat nekonečné problémy s miliónem programů. Představte si, že někdo bude třídit verze jako řetězce - ono to je totiž jako řetězec uloženo prakticky všude. Například v těch registrech a nebo v WMI class Win32_OperatingSystem. Je to proto, že v tom čísle bývá ještě build a to samozřejmě nejde dát do čísla (jako třeba tady).
Takže nastane to, co jsem si užil například s WMI a Hyper-V na Windows 2012 R2. Trvalo mi několik dnů, než jsem portnul svou implementaci z root/virtualization na root/virtualization/v2. V podstatě jenom proto, že přejmenovali půlku tabulek a jejich property. Žádnou novou extra funkcionalitu to nedostalo. Jenom to celé přejmenovali a přečíslovali hodnoty.
Takže zřejmě filosofické rozhodnutí bylo toto: "borci, nemůžem tomu dát jenom číslo 6.4. To by těm lidem všechno fungovalo a každej by pak tvrdil, že to je starej systém. Tak tomu dejte verzi 10 a každej se z toho opíchá. Vždycky můžem tvrdit, že to je jejich blbost, že už tisíc let třídí řetězce. Jo a vyřiďte borcům z Azure Active Directory Sync Tool aby si zase dali bacha, minule to porovnávali dokonce v regionálních zobrazeních".
Takže to je naprostý chaos. Jako nezlobte se na mě soudruzi, ale číslo verze je jedna z nejkritičtějších hodnot pro libovolnou aplikaci co se dá použít a na čem záleží skoro cokoliv.
Zkuste sami:
'6.3.9600' -gt '10.0.10074'