Как проверить версию PowerShell Windows 10
Обновлено: 21.11.2024
Если вы просматриваете это в 2019+, игнорируйте ответ, который помечен как правильный, и переходите сразу к тому, который является правильным. Добро пожаловать.
31 Ответ 31
Подробнее о версиях Windows можно найти здесь.
Когда я запускаю winver, он показывает мне версию 1607. Но приведенная выше команда powershell не дает 1607. Где я могу получить этот номер «1607» в Powershell?
@CMCDragonkai (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
Чтобы получить номер версии Windows, как отмечает Джефф в своем ответе, используйте:
Стоит отметить, что результат имеет тип [System.Version] , поэтому можно проверить, скажем, Windows 7/Windows Server 2008 R2 и более поздние версии с помощью
Однако это не скажет вам, является ли это клиентской или серверной Windows, а также название версии.
Используйте класс WMI Win32_OperatingSystem (всегда один экземпляр), например:
вернет что-то вроде
Microsoft® Windows Server® 2008 Standard
К сожалению, в большинстве других ответов нет информации, относящейся к Windows 10.
У Windows 10 есть собственные версии: 1507, 1511, 1607, 1703 и т. д. Вот что показывает winver.
Как и в других версиях Windows, используйте systeminfo . Оболочка Powershell:
Вывод той же команды в Windows 10:
Это легко запомнить: winver на десктопе и systeminfo на сервере. В течение многих лет меня сбивало с толку отсутствие единого способа получения этой информации.
Отличные ссылки на действительно полезную информацию о MS. Следует отметить, что для Win8.1 (и ниже?) отображается следующая информация: Версия ОС: 6.3.9600 Н/Д Сборка 9600. Таким образом, в версиях ниже W81 может быть более информативно взглянуть на (всегда пропускаемые) версии LTSB. См. вывод из: (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx, который может выглядеть так: 9600.19179.amd64fre.winblue_ltsb_escrow.181015-1847 . Я предполагаю, что часть 181015 - это дата сборки, а 1847 - версия сборки или выпуска. Вам также может понадобиться сравнить это с kernel, hal.
Должен быть принятый ответ в 2020 году. Эй, команда SO, можем ли мы изменить принятый ответ с годами? Будет ли это мета-проблемой?
releaseid больше не работает для 21h1, вместо этого теперь используется displayversion. чего нет в старых версиях
Это даст вам полную версию Windows (включая номер редакции/сборки), в отличие от всех вышеперечисленных решений:
На мой взгляд, это лучшее решение, поскольку оно правильно сообщает номер версии. Ни один из других не работает (по крайней мере, насколько я их проверял).
Это пока единственное решение, которое позволило мне получить полный номер сборки. Однако не все файлы в system32 обновляются при каждом обновлении — например, моя hal.dll по-прежнему показывает 10.0.10586.0 (th2_release.151029-1700), а winload.exe — 10.0.10586.63 ( th2_release.160104-1513).
Это зависит от деталей реализации со стороны Microsoft, и нет никаких гарантий, что они будут продолжать это делать. Это работает сейчас, но вам не следует полагаться на это, если вы хотите, чтобы ваш скрипт работал в долгосрочной перспективе.
@Jaykul Ну, я не согласен по двум причинам. (1) потому что эти числа, подобные «1803», не всегда доступны (например, в Win8), так что там следует использовать? (2) Нет технической причины, по которой должна быть только одна правильная версия . ОС создается (и обновляется) частями, т. е. ядром, HAL, UBR и функциями и т. д. Поэтому нам действительно следует отображать их все. В этом отношении я думаю, что BuildLabEx , Kernel и HAL (в таком порядке) будут наиболее подходящим способом дать более правильную версию. Но поскольку вы, кажется, знаете, что неправильно, вы должны публиковать то, что правильно.
Начиная с PowerShell 5:
Я думаю, что эта команда в значительной степени пробует 1001 способ сбора системной информации, обнаруженный на данный момент.
Отчасти ответы, которые я получил, выглядят странно. У меня Windows 10 1909, но «WindowsCurrentVersion» — 6.3. Я думаю, что это будет 10, так как 6.3 — это Windows 8.1. В остальном мне нравится информация, предоставленная этой командой
Если вы хотите отличить Windows 8.1 (6.3.9600) от Windows 8 (6.2.9200), используйте
чтобы получить правильную версию. [Environment]::OSVersion не работает должным образом в Windows 8.1 (возвращает версию Windows 8).
Оба (Get-CimInstance Win32_OperatingSystem).Version и [Environment]::OSVersion у меня работают и возвращают один и тот же результат: 6.3.9600.0
Я уточняю один из ответов
Я задал этот вопрос, пытаясь сопоставить вывод winver.exe:
Версия 1607 (сборка ОС 14393.351)
Мне удалось извлечь строку сборки с помощью:
Обновлено: вот немного упрощенный скрипт с использованием регулярных выражений
вам понадобится такая комбинация, как:
$name=(Get-WmiObject Win32_OperatingSystem).caption $bit=(Get-WmiObject Win32_OperatingSystem).OSArchitecture $ver=(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId Write- Хост $name, $bit, $ver
Microsoft Windows 10 Домашняя, 64-разрядная версия 1703
Я взял приведенные выше сценарии и немного изменил их, чтобы получить вот это:
Чтобы получить такой результат:
Microsoft Windows 10 Домашняя, 64-разрядная версия: 1709 Сборка: 16299.431 @
Подсказка: я был бы признателен за удаление текста префикса из даты установки, чтобы я мог заменить его более читаемым заголовком.
Выполнение команды установки даты занимает некоторое время, поэтому я нашел более быструю: [часовой пояс]::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)< /p>
Чтобы получить результат, идентичный winver.exe, в PowerShell v5 в Windows 10 1809:
Кроме того, он соответствует версии в разделе "Настройки > Система > О программе" в Windows 10. И получает правильное обновление версии сборки, чего не делают многие решения на моей машине 👍
У меня это перестало работать. WinVer.exe показывает версию 20H2 (сборка ОС 19042.804), но это дает версию 2009 (сборка ОС 19042.804). Изменение ReleaseId на DisplayVersion устраняет проблему, но в старых ОС нет DisplayVersion .
releaseid больше не работает для 21h1, вместо этого теперь используется displayversion. чего нет в старых версиях
Как сообщает 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. Поэтому используйте это:
Также можно получить номер версии следующим образом: Get-WmiObject -class win32_operatingsystem | выберите версию
Должно быть просто:
Windows PowerShell 2.0:
Windows PowerShell 3.0:
Для отображения (обе версии):
Это действительно длинная ветка, и, вероятно, потому, что ответы, хотя и правильные, не решают фундаментальный вопрос. Я наткнулся на этот сайт: Номера версий и сборок, который дал четкое представление о том, что есть что в мире Microsoft Windows.
Поскольку меня интересует, с какой именно ОС Windows я имею дело, я оставил в стороне всю радугу версий и вместо этого сосредоточился на BuildNumber. Номер сборки можно получить одним из следующих способов:
выбор за вами, какой способ вы предпочитаете. Отсюда я мог бы сделать что-то вроде:
Примечание. Как видите, я использовал описанное выше только для серверных систем, однако его можно легко применить к рабочим станциям или даже расширить для поддержки обоих. но я оставлю это вам.
Махеш Маквана
Махеш Маквана
Писатель
Махеш Маквана — технический писатель-фрилансер, специализирующийся на написании практических руководств. Он пишет технические учебники уже более десяти лет. Он написал для некоторых известных технических сайтов, включая MakeUseOf, MakeTechEasier и Online Tech Tips. Подробнее.
Поиск версии PowerShell поможет вам узнать, к каким функциям PowerShell у вас есть доступ. Команда PowerShell позволяет указать номер версии, и мы покажем, как это сделать.
Найдите свою версию PowerShell
Вы будете использовать саму утилиту PowerShell, чтобы найти номер версии.
Чтобы начать, откройте меню "Пуск", найдите "Windows PowerShell" и щелкните его в результатах поиска.
В открывшемся окне PowerShell введите следующую команду и нажмите Enter:
PowerShell отображает различные числа. Здесь первое значение, которое говорит «PSVersion», — это ваша версия PowerShell.
Теперь вы можете закрыть окно PowerShell.
Дополнительный совет: обновите PowerShell в Windows 10
Windows 10 обновляет встроенный инструмент PowerShell при установке системных обновлений. Это означает, что вы должны постоянно обновлять свой компьютер, чтобы всегда использовать последнюю версию PowerShell.
Кроме того, помните, что PowerShell 7 отличается от версии, которая обычно устанавливается на ПК с Windows 10. Чтобы установить эту версию PowerShell, загрузите установочный файл или выполните команду из PowerShell на своем ПК. У нас есть специальное руководство о том, как это сделать, если вы хотите его проверить.
- › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
- › Как восстановить метки панели задач в Windows 11
- › Почему прозрачные чехлы для телефонов желтеют?
- › Почему СМС должен умереть
- › Что означает XD и как вы его используете?
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
Самый быстрый способ узнать, какая операционная система Windows установлена на вашем компьютере, — использовать команду winver. В Windows PowerShell существует несколько способов получить вашу версию операционной системы Windows, и мы обсудим их здесь, в этой статье.
Использование класса [System.Environment] в PowerShell для получения версии Windows
Мы можем обратиться к официальному документу Microsoft для перекрестной ссылки на текущую версию операционной системы Windows, в которой вы сейчас работаете.
Однако правильная версия не будет отображаться, если вы используете новейшие операционные системы, такие как Windows 11 или Windows Server 2019, так как по-прежнему будет отображаться основная сборка 10, представляющая Windows 10 и Windows Server 2016. Поэтому приведенная выше команда будет отображать правильные значения только в том случае, если вы используете Windows 10 и Windows Server 2016 ниже.
Использование командлета Get-ComputerInfo в PowerShell для получения версии Windows
Использование одного Get-ComputerInfo приведет к выводу множества свойств. Мы можем вызвать свойства WindowsProductName , Windows Version и OSHardwareAbstractionLayer только из этого набора свойств, чтобы получить версию операционной системы Windows.
Как и предыдущий класс [System.Environment], этот командлет будет отображать правильные значения, если ваша операционная система использует версии Windows 10 и Windows Server 2016 и ниже.
Существует аналогичная команда, которая проверяет реестр HKLM и отображает свойство Windows Version командлета Get-ComputerInfo.
Представленное выше свойство версии Windows — это то, что мы называем номером сборки операционной системы. Номер сборки 2009 представляет собой сборку Windows 10. Это означает, что эта команда применима только к операционным системам Windows 10 и Windows Server 2016 и более ранним версиям.
Использование класса WMI с командлетом Get-WMIObject в PowerShell для получения версии Windows
Мы также можем использовать класс инструментария управления Windows (WMI) для проверки текущей версии вашей операционной системы.
В отличие от класса [System.Environment] и командлета Get-ComputerInfo объект WMI правильно отображает версию операционной системы Windows, если вы используете последнюю версию.
Использование устаревшей команды systeminfo
Мы также можем использовать устаревшую команду systeminfo с оболочками командлетов Windows PowerShell для вывода подробной версии операционной системы.
Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».
сообщить об этом объявлении
Командлет Get-WindowsEdition получает текущие выпуски указанного образа Windows.
Параметр Target возвращает целевые выпуски, доступные в указанном образе Windows.
Используйте параметр Online, чтобы указать работающую операционную систему на локальном компьютере, или используйте параметр Path, чтобы указать расположение смонтированного образа Windows.
Примеры
Пример 1. Отображение текущей версии операционной системы
Эта команда отображает название текущей версии работающей операционной системы Windows.
Пример 2. Отображение целевых выпусков смонтированного образа
Эта команда отображает имена доступных целевых выпусков, на которые может быть изменен смонтированный образ Windows в c:\offline.
Параметры
Указывает максимальный выходной уровень, отображаемый в журналах. Уровень журнала по умолчанию — 3. Допустимые значения:
- 1 = только ошибки
- 2 = ошибки и предупреждения
- 3 = ошибки, предупреждения и информация.
- 4 = Вся информация, указанная выше, плюс выходные данные отладки.
Указывает полный путь и имя файла для входа. Если не задано, по умолчанию используется %WINDIR%\Logs\Dism\dism.log . В Windows PE каталогом по умолчанию является рабочее пространство RAMDISK, размер которого может составлять всего 32 МБ. Файл журнала будет автоматически заархивирован. Заархивированный файл журнала будет сохранен с добавлением .bak к имени файла, и будет создан новый файл журнала. Каждый раз, когда файл журнала архивируется, файл .bak перезаписывается. При использовании общего сетевого ресурса, не присоединенного к домену, используйте команду net use вместе с учетными данными домена, чтобы установить разрешения на доступ, прежде чем указывать путь к журналу DISM.
Тип: | String |
Псевдонимы: | LP |
Позиция: | Имя |
Значение по умолчанию: | Нет | < /tr>
Принимать ввод конвейера: | Истина |
Допускать подстановочные знаки: | Ложь |
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | Истина |
Допускать подстановочные знаки: | False |
Указывает полный путь к корневому каталогу автономного образа Windows, который вы будете обслуживать. Если каталог с именем Windows не является подкаталогом корневого каталога, необходимо указать WindowsDirectory.
Тип: | Строка |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | Истина |
Допускать подстановочные знаки: | False |
Указывает временный каталог, который будет использоваться при извлечении файлов для использования во время обслуживания. Каталог должен существовать локально. Если не указано, будет использоваться каталог \Windows\%Temp% с именем подкаталога, представляющим собой случайно сгенерированное шестнадцатеричное значение для каждого запуска DISM. Элементы в рабочем каталоге удаляются после каждой операции. Не следует использовать сетевую папку в качестве вспомогательного каталога для развертывания пакета (файла .cab или .msu) для установки. Каталог, используемый для извлечения файлов для временного использования во время обслуживания, должен быть локальным каталогом.
Тип: | Строка |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | Истина |
Допускать подстановочные знаки: | False |
Указывает путь к расположению файлов BootMgr. Это необходимо только в том случае, если файлы BootMgr расположены в разделе, отличном от того, из которого вы запускаете команду. Используйте -SystemDrive для обслуживания установленного образа Windows из среды Windows PE.
Тип: | Строка |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | Истина |
Допускать подстановочные знаки: | False |
Отображает список выпусков Windows, на которые можно заменить изображение.
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | Истина |
Допускать подстановочные знаки: | False |
Указывает путь к каталогу Windows относительно пути к изображению. Это не может быть полный путь к каталогу Windows; это должен быть относительный путь. Если не указано иное, по умолчанию используется каталог Windows в корне каталога автономного образа.
Читайте также:
- Как установить checkra1n в Linux
- Двойной агент Splinter Cell не запускается в Windows 7
- Настройка сети Debian 10
- Настройка Grub Linux Mint
- Потеряно разрешение 1920 1080 на Windows 7