To naprawdę długi wątek i prawdopodobnie dlatego, że odpowiedzi, choć poprawne, nie rozwiązują podstawowego pytania. Trafiłem na tę stronę: Numery wersji i kompilacji, która zapewnia jasny przegląd tego, czym jest świat Microsoft Windows.
Ponieważ interesuje mnie wiedza, z którym dokładnie systemem operacyjnym Windows mam do czynienia, odłożyłem na bok całą tęczową wersję i skupiłem się na numerze kompilacji. Numer kompilacji można uzyskać przez:
([Environment]::OSVersion.Version).Build
lub przez:
(Get-CimInstance Win32_OperatingSystem).buildNumber
wybór należy do Ciebie, tak jak wolisz. Stamtąd mogłem zrobić coś w stylu:
switch ((Get-CimInstance Win32_OperatingSystem).BuildNumber)
{
6001 {$OS = "W2K8"}
7600 {$OS = "W2K8R2"}
7601 {$OS = "W2K8R2SP1"}
9200 {$OS = "W2K12"}
9600 {$OS = "W2K12R2"}
14393 {$OS = "W2K16v1607"}
16229 {$OS = "W2K16v1709"}
default { $OS = "Not Listed"}
}
Write-Host "Server system: $OS" -foregroundcolor Green
Uwaga: Jak widać, użyłem powyższego tylko dla systemów serwerowych, jednak można go łatwo zastosować na stacjach roboczych lub nawet sprytnie rozszerzyć, aby obsługiwał oba ... ale zostawię to tobie.
Baw się dobrze!