Wie finde ich die verwendete Windows-Version?
Ich verwende PowerShell 2.0 und habe versucht:
PS C:\> ver
The term 'ver' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify tha
t the path is correct and try again.
At line:1 char:4
+ ver <<<<
+ CategoryInfo : ObjectNotFound: (ver:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Wie mache ich das?
Antworten:
Da Sie Zugriff auf die .NET-Bibliothek haben, können Sie auf die
OSVersion
Eigenschaft derSystem.Environment
Klasse zugreifen , um diese Informationen abzurufen. Für die Versionsnummer gibt es dieVersion
Eigenschaft.Beispielsweise,
Details zu Windows-Versionen finden Sie hier .
quelle
[Environment]::OSVersion
in Windows-10 funktioniert ,OSVersion.Version.Major
gibt 10.winver
, wird mir Version 1607 angezeigt. Der obige Powershell-Befehl gibt jedoch nicht 1607 an. Woher bekomme ich diese "1607" -Nummer in Powershell?(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
[System.Environment]::OSVersion
war nicht veraltet, die im Hintergrund verwendete Methode ist veraltet. Neue PS-Versionen ändern das Backend-Verhalten: github.com/PowerShell/PowerShell/issues/…Verwenden Sie Folgendes , um die Windows-Versionsnummer zu erhalten, wie Jeff in seiner Antwort feststellt :
Es ist erwähnenswert, dass das Ergebnis vom Typ ist
[System.Version]
, sodass Sie beispielsweise nach Windows 7 / Windows Server 2008 R2 und höher mit suchen könnenDies sagt Ihnen jedoch weder, ob es sich um Client- oder Server-Windows handelt, noch den Namen der Version.
Verwenden Sie die WMI-
Win32_OperatingSystem
Klasse (immer eine einzelne Instanz), zum Beispiel:wird so etwas wie zurückgeben
quelle
Leider enthalten die meisten anderen Antworten keine spezifischen Informationen für Windows 10.
Windows 10 hat Versionen für sich: 1507, 1511, 1607, 1703, etc . Das
winver
zeigt es.Siehe auch verwandte Frage zum Superuser .
Wie für andere Windows-Versionen verwenden
systeminfo
. Powershell Wrapper:Windows 10-Ausgabe für denselben Befehl:
quelle
winver
auf dem Desktop undsysteminfo
auf dem Server leicht zu merken . Es hat mich jahrelang verblüfft, dass es keinen einheitlichen Weg gibt, diese Informationen zu erhalten.OS Version : 6.3.9600 N/A Build 9600
. In Versionen unter W81 kann es daher informativer sein, sich die (immer übersehenen) LTSB-Versionen anzusehen. Siehe Ausgabe von(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx
:, die wie folgt aussehen kann :9600.19179.amd64fre.winblue_ltsb_escrow.181015-1847
. Ich vermute, dass der181015
Teil das Erstellungsdatum ist, während es sich um die1847
Erstellungs- oder Veröffentlichungsversion handelt. Möglicherweise müssen Sie dies auch mit Kernel, hal , vergleichen .Oder Golf gespielt
Ergebnis
quelle
Dadurch erhalten Sie im Gegensatz zu allen oben genannten Lösungen die Vollversion von Windows (einschließlich der Revisions- / Build-Nummer) :
Ergebnis:
quelle
10.0.10586.0 (th2_release.151029-1700)
angezeigt, während winload.exe dies tut10.0.10586.63 (th2_release.160104-1513)
.version
. Das Betriebssystem wird von Teilen erstellt (und aktualisiert), dh dem Kernel, dem HAL, dem UBR und den Funktionen usw. Dann sollten wir wirklich alle anzeigen. In dieser Hinsicht denke ichBuildLabEx
,Kernel
undHAL
(in dieser Reihenfolge) wäre der geeignetste Weg, um eine korrektere Version zu geben . Aber da Sie zu wissen scheinen, was falsch ist , sollten Sie posten, was richtig ist .kehrt zurück
quelle
Seit PowerShell 5:
Ich denke, dieser Befehl versucht so ziemlich die 1001 verschiedenen Wege, die bisher entdeckt wurden, um Systeminformationen zu sammeln ...
quelle
Wenn Sie zwischen Windows 8.1 (6.3.9600) und Windows 8 (6.2.9200) unterscheiden möchten, verwenden Sie
um die richtige Version zu bekommen.
[Environment]::OSVersion
funktioniert in Windows 8.1 nicht richtig (es wird eine Windows 8-Version zurückgegeben).quelle
[Environment]::OSVersion
in Windows-10 funktioniert ,OSVersion.Version.Major
gibt 10.(Get-CimInstance Win32_OperatingSystem).Version
und[Environment]::OSVersion
arbeitet für mich und schicken Sie das gleiche Ergebnis: 6.3.9600.0Ich verfeinere eine der Antworten
Ich habe diese Frage erreicht, als ich versucht habe, die Ausgabe von winver.exe abzugleichen:
Version 1607 (OS Build 14393.351)
Ich konnte den Build-String extrahieren mit:
Ergebnis:
14393.351
Aktualisiert : Hier ist ein leicht vereinfachtes Skript mit Regex
quelle
Ich habe die obigen Skripte genommen und sie ein wenig optimiert, um Folgendes zu finden:
So erhalten Sie ein Ergebnis:
Microsoft Windows 10 Home 64-Bit-Version: 1709 Build: 16299.431 @ {WindowsInstallDateFromRegistry = 18-01-01 02:29:11 AM}
Hinweis: Ich würde es begrüßen, wenn eine Hand den Präfixtext vom Installationsdatum entfernt, damit ich ihn durch einen besser lesbaren Header ersetzen kann.
quelle
[timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970')).AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
Er ist etwas komplexer, aber viel schneller. Möglicherweise können Sie sogar den Teil der Zeitzone weglassen:([datetime]'1/1/1970').AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
Wie MoonStom sagt,
[Environment]::OSVersion
funktioniert es unter einem aktualisierten Windows 8.1 nicht richtig (es gibt eine Windows 8-Version zurück): link .Wenn Sie zwischen Windows 8.1 (6.3.9600) und Windows 8 (6.2.9200) unterscheiden möchten, können
(Get-CimInstance Win32_OperatingSystem).Version
Sie die richtige Version verwenden. In PowerShell 2 funktioniert dies jedoch nicht. Verwenden Sie also Folgendes:quelle
Verwenden:
quelle
Wenn Sie versuchen, Informationen zu entschlüsseln, stellt MS eine Patch-Site wie https://technet.microsoft.com/en-us/library/security/ms17-010.aspx bereit
Sie benötigen eine Kombination wie:
$name=(Get-WmiObject Win32_OperatingSystem).caption $bit=(Get-WmiObject Win32_OperatingSystem).OSArchitecture $ver=(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId Write-Host $name, $bit, $ver
Microsoft Windows 10 Home 64-Bit 1703
quelle
Windows PowerShell 2.0:
Windows PowerShell 3.0:
Zur Anzeige (beide Versionen):
quelle
So erzeugen Sie eine identische Ausgabe wie winver.exe in PowerShell v5 unter Windows 10 1809:
quelle
quelle
Dies ist wirklich ein langer Thread, und wahrscheinlich, weil die richtigen Antworten die grundlegende Frage nicht lösen. Ich bin auf diese Site gestoßen : Versions- und Build-Nummern , die einen klaren Überblick über das, was in der Microsoft Windows-Welt ist, bieten.
Da ich wissen möchte, mit welchem Windows-Betriebssystem ich es genau zu tun habe, habe ich die gesamte Version rainbow beiseite gelassen und mich stattdessen auf die BuildNumber konzentriert. Die Build-Nummer kann entweder erreicht werden durch:
oder von:
Sie haben die Wahl, wie Sie es bevorzugen. Von dort aus konnte ich also Folgendes tun:
Hinweis: Wie Sie sehen, habe ich das oben Genannte nur für Serversysteme verwendet, es kann jedoch problemlos auf Workstations angewendet oder sogar geschickt erweitert werden, um beide zu unterstützen ... aber das überlasse ich Ihnen.
Habe Spaß!
quelle
Dadurch erhalten Sie die vollständige und RICHTIGE (dieselbe Versionsnummer, die Sie beim Ausführen von winver.exe finden) Windows-Version (einschließlich Revisions- / Build-Nummer) FERN im Gegensatz zu allen anderen Lösungen (getestet unter Windows 10):
quelle
Ich habe viel gesucht, um die genaue Version herauszufinden, da der WSUS-Server die falsche Version anzeigt. Am besten holen Sie sich eine Revision vom UBR-Registrierungsschlüssel.
quelle
Mit Windows Powershell können Sie die benötigten Daten auf folgende Weise abrufen
Bildbeschriftung:
ReleaseId:
Ausführung:
quelle
[gelöst]
quelle
Sie können auch so etwas verwenden, indem Sie OSVersion.Version.Major überprüfen:
quelle
Sie können Python verwenden, um die Dinge zu vereinfachen (funktioniert auf allen Windows-Versionen und allen anderen Plattformen):
quelle
Unter Windows 10 wird Folgendes zurückgegeben: 10.0.10586.420
Sie können dann die Variable verwenden, um auf Eigenschaften für einen detaillierten Vergleich zuzugreifen
Darüber hinaus können Sie Betriebssystemversionen wie folgt vergleichen
quelle