Как узнать, какую версию Windows я использую?
Я использую PowerShell 2.0 и пробовал:
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
Как мне это сделать?
Ответы:
Поскольку у вас есть доступ к библиотеке .NET, вы можете получить доступ к
OSVersion
свойствуSystem.Environment
класса, чтобы получить эту информацию. Для номера версии естьVersion
свойство.Например,
Подробную информацию о версиях Windows можно найти здесь .
источник
[Environment]::OSVersion
работает в windows-10 ,OSVersion.Version.Major
возвращает 10.winver
он показывает мне версию 1607. Но приведенная выше команда powershell не дает 1607. Где я могу получить этот номер "1607" в Powershell?(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
[System.Environment]::OSVersion
не устарела, метод, который она использует в фоновом режиме, устарел. Новые версии PS меняют поведение серверной части: github.com/PowerShell/PowerShell/issues/…Чтобы получить номер версии Windows, как отмечает Джефф в своем ответе , используйте:
Стоит отметить, что результат имеет тип
[System.Version]
, поэтому можно проверить, например, Windows 7 / Windows Server 2008 R2 и более поздние версии с помощьюОднако это не скажет вам, клиентская это или серверная Windows, или название версии.
Используйте
Win32_OperatingSystem
класс WMI (всегда один экземпляр), например:вернет что-то вроде
источник
К сожалению, большинство других ответов не содержат информации, относящейся к Windows 10.
У Windows 10 есть собственные версии : 1507, 1511, 1607, 1703 и т . Д. Это то, что
winver
показывает.См. Также связанный вопрос о суперпользователе .
Что касается других версий Windows, то используйте
systeminfo
. Обертка Powershell:Вывод Windows 10 для той же команды:
источник
winver
на рабочем столе иsysteminfo
на сервере. В течение многих лет меня сбивало с толку отсутствие единого способа получения этой информации.OS Version : 6.3.9600 N/A Build 9600
. Таким образом, в версиях ниже W81 может быть более информативным взглянуть на (всегда игнорируемые) версии LTSB. См выхода из:(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx
что может выглядеть следующим образом :9600.19179.amd64fre.winblue_ltsb_escrow.181015-1847
. Я предполагаю , что181015
часть - это дата сборки, а1847
версия сборки или выпуска. Вам также может потребоваться сравнить это с ядром, hal .Или играл в гольф
результат
источник
Это даст вам полную версию Windows (включая номер версии / сборки) в отличие от всех вышеперечисленных решений:
Результат:
источник
10.0.10586.0 (th2_release.151029-1700)
, а winload.exe10.0.10586.63 (th2_release.160104-1513)
.version
. ОС создается (и обновляется) по частям, то есть ядром, HAL, UBR, функциями и т. Д. Итак, тогда мы действительно должны отображать их все. В этом отношении я думаюBuildLabEx
,Kernel
иHAL
(именно в таком порядке) было бы наиболее подходящим способом дать более правильную версию . Но поскольку кажется, что вы знаете, что не так , вы должны публиковать то, что правильно .возвращается
источник
Начиная с PowerShell 5:
Я думаю, что эта команда в значительной степени пробует 1001 новый способ сбора системной информации ...
источник
Если вы хотите различать Windows 8.1 (6.3.9600) и Windows 8 (6.2.9200), используйте
чтобы получить нужную версию.
[Environment]::OSVersion
не работает должным образом в Windows 8.1 (возвращает версию Windows 8).источник
[Environment]::OSVersion
работает в windows-10 ,OSVersion.Version.Major
возвращает 10.(Get-CimInstance Win32_OperatingSystem).Version
и[Environment]::OSVersion
работают для меня и возвращают тот же результат: 6.3.9600.0Уточняю один из ответов
Я подошел к этому вопросу, пытаясь сопоставить вывод winver.exe:
Version 1607 (OS Build 14393.351)
Мне удалось извлечь строку сборки с помощью:
Результат:
14393.351
Обновлено : вот немного упрощенный скрипт с использованием регулярного выражения
источник
Я взял приведенные выше сценарии и немного изменил их, чтобы получилось следующее:
Чтобы получить такой результат:
64-разрядная версия Microsoft Windows 10 Home: 1709 Сборка: 16299.431 @ {WindowsInstallDateFromRegistry = 18-01-01 2:29:11 AM}
Подсказка: я был бы признателен, если бы вы удалили текст префикса из даты установки, чтобы я мог заменить его более читаемым заголовком.
источник
[timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970')).AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
она немного сложнее, но работает намного быстрее. Возможно, вы даже сможете([datetime]'1/1/1970').AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
Как говорит MoonStom,
[Environment]::OSVersion
не работает должным образом на обновленной Windows 8.1 (возвращает версию Windows 8): ссылка .Если вы хотите различать Windows 8.1 (6.3.9600) и Windows 8 (6.2.9200), вы можете использовать
(Get-CimInstance Win32_OperatingSystem).Version
для получения правильной версии. Однако это не работает в PowerShell 2. Так что используйте это:источник
Использование:
источник
Если вы пытаетесь расшифровать информацию, которую MS размещает на своем сайте исправлений, например https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
вам понадобится комбо, например:
$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-разрядная версия 1703
источник
Windows PowerShell 2.0:
Windows PowerShell 3.0:
Для дисплея (обе версии):
источник
Чтобы произвести идентичный вывод winver.exe в PowerShell v5 в Windows 10 1809:
источник
источник
Это действительно длинная цепочка, и, вероятно, потому, что ответы, хотя и верные, не решают фундаментального вопроса. Я наткнулся на этот сайт: Номера версий и сборок который дает четкое представление о том, что есть что в мире Microsoft Windows.
Поскольку меня интересует, с какой именно ОС Windows я имею дело, я оставил в стороне всю версию Rainbow и вместо этого сосредоточился на BuildNumber. Номер сборки может быть получен:
или по:
выбор остается за вами, какой бы вы ни предпочли. Итак, оттуда я мог сделать что-то вроде:
Примечание. Как вы можете видеть, я использовал вышеуказанное только для серверных систем, однако его можно легко применить на рабочих станциях или даже разумно расширить для поддержки обоих ... но я оставлю это вам.
Наслаждайтесь и получайте удовольствие!
источник
Это даст вам полную и ПРАВИЛЬНУЮ (тот же номер версии, который вы найдете при запуске winver.exe) версию Windows (включая номер версии / сборки) УДАЛЕННО, в отличие от всех других решений (протестированных в Windows 10):
источник
Я много искал, чтобы узнать точную версию, потому что сервер WSUS показывает неправильную версию. Лучше всего получить ревизию из КЛЮЧА реестра UBR.
источник
Используя Windows Powershell, можно получить нужные данные следующим образом
Надпись:
ReleaseId:
версия:
источник
[Решено]
источник
Вы также можете использовать что-то вроде этого, проверив OSVersion.Version.Major:
источник
Вы можете использовать python для упрощения (работает на всех версиях Windows и на всех других платформах):
источник
В Windows 10 возвращается: 10.0.10586.420
Затем вы можете использовать переменную для доступа к свойствам для детального сравнения.
Кроме того, вы можете сравнить версии операционной системы, используя следующие
источник