Get windows product name

Windows: Получить информацию о железе и ОС через cmd (утилита WMIC).

Частенько возникают ситуации когда нужно узнать аппаратную начинку ПК, не отрывая при этом пользователя от работы. На мой взгляд, самый быстрый вариант запустить удаленно командную строку с помощью PsExec или DameWare Remote Support и поглядеть нужную информацию. Ваш покорный слуга чаще всего использует утилиту WMIC для этих целей. Ниже приведена общая информация и список часто используемых ключей.

WMI — запиленная под windows реализация стандарта Web-Based Enterprise Management ( WBEM ). Стандарт используется многими крупными компаниями для мониторинга и управления различными системами и компонентами распределенной информационной среды предприятия с использованием объектно-ориентированных идеологий и протоколов HTML и XML

Утилита WMIC (Windows Management Instrumentation Command) — консольная утилита для вызова объектов и методов WMI. Присутствует во всех версиях Windows начиная с Windows XP.

Вообще функционал WMIC довольно велик. Если заморочиться, с помощью этого инструмента можно сделать много чего. Ваш покорный слуга выписал список популярных команд для получения информации о железе и ОС, чтобы долго не вспоминать.

1. Получить информацию о процессоре. (Название, количество ядер, количество потоков, максимальная частота)

2. Получить информацию о материнской плате (Производитель, модель)

3. Получить информацию о BIOS (Производитель, Дата, Версия)

4. Получить информацию о модулях памяти (Объем, модель, серийный номер)

5. Получить информацию о HDD (Модель, Размер)

6. Получить информацию о логических дисках. (Буква, общий объем, свободное место, имя)

7. Получить список принтеров и их статусы.

8. Получить информацию об операционной системе (Название, версия)

Как вывести список установленных программ в Windows 10

В этой инструкции мы покажем несколько способов получить список установленных программ в Windows 10, Windows 8 или Windows 7 с помощью командной строки. Эта методика построения списка программ в системе может пригодиться перед переустановкой системы, когда нужно найти нежелательное ПО или при выполнении инвентаризации установленного ПО на компьютерах организации.

Рассмотрим два способа: первый подразумевает использование командной строки и утилиты wmic, второй — PowerShell.

Вывод списка программ с помощью утилиты командной строки WMIC

Список установленных в системе программ может быть получен с помощью утилиты командной строки WMIC, через которую можно обратиться и опросить пространство имен WMI. Запустите командную строку с правами администратора и выполните команду:

wmic product get name,version

После небольшого ожидания, на экран консоли будет выведен список названий и версия установленных в системе программ.

Этот список можно экспортировать в текстовый файл с помощью команды:

wmic product get name,version /format:csv > c:\Temp\Programs_%Computername%.csv

После окончания выполнения команды перейдите в каталог C:\Temp и найдите csv файл, имя которого начинается с Programs_[имя_ПК]. В данном файле в csv-формате помимо названия и версии ПО, также будет содержаться имя ПК (удобно для дальнейшего анализа).

Вывод списка программ через Windows PowerShell

Список установленных программ также может быть получен с помощью PowerShell. Идея метода в том, что список установленных программ, который мы видим в списке Programs and Features Панели Управления, строится на основе данных, хранящихся в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Читайте также:  Звук при открытии папки windows 10

Наша задача – вывести содержимое данной ветки реестра. Итак, запустите консоль Powershell и выполните команду:

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, Size, InstallDate | Format-Table -AutoSize

Как вы видите, в результирующем списке содержится имя программы, версия, разработчик и дата установки.

Экспортировать полученный список в csv файл можно так:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize > c:\temp\ installed-software.txt

Рассмотренный выше способ позволяет вывести данные только о классический Windows приложениях. Чтобы вывести список установленных Metro приложений, воспользуйтесь командой:

Get-AppxPackage | Select Name, PackageFullName |Format-Table -AutoSize > c:\temp\installed_metro_apps.txt

Чтобы получить список установленного ПО на удаленном компьютере (к примеру, с именем wks_name11), воспользуемся командлетом Invoke-command:

Invoke-command -computer wks_name11

Чтобы сравнить списки установленного ПО, полученные с двух разных компьютеров и найти отсутствующие приложения, можно воспользоваться такой командой:

Compare-Object –ReferenceObject (Get-Content C:\temp\installed-software.txt) –DifferenceObject (Get-Content C:\temp\installed-software2.txt)

В нашем примере в двух сравниваемых списках имеются различия в двух программах.

Другой способ вывести список установленных программ – воспользоваться командлетом Get-WmiObject, также позволяющего обращаться с пространству WMI:

Get-WmiObject -Class Win32_Product | Select-Object -Property Name

How to get product name of Windows from Windows registry?

I need to get a value in a registry key with a Windows command.

I need just the string Windows 7 Home Premium .

1 Answer 1

The command FOR with option /F can be used to assign the output of a command or executable to an environment variable.

For usage in a batch file:

For usage in a command prompt window:

FOR starts one more command process in background with %ComSpec% /c and the command line in the parentheses appended as additional arguments. So started is with Windows installed to C:\Windows :

The output of executable reg.exe is captured by FOR and processed line by line after started cmd.exe closed itself after reg.exe terminated itself.

Read the Microsoft article about Using command redirection operators for an explanation of 2>nul . The redirection operator > must be escaped with caret character ^ on FOR command line to be interpreted as literal character when Windows command interpreter processes this command line before executing command FOR which executes the embedded reg command line in a separate command process started in background.

The output by reg on Windows Vista and later Windows versions is for example:

So there is an empty line output first, next the line with the registry key, then the line with the value of interest with spaces around ProductName , REG_SZ and Windows 7 Home Premium , and last one more empty line.

But the output is different on Windows XP:

There is an additional header with two more lines output by reg.exe on Windows XP. There is a horizontal tab character between ProductName and REG_SZ and one more tab between REG_SZ and Microsoft Windows XP instead of spaces in comparison to output of reg.exe on Windows Vista and later Windows versions.

Those differences are taken into account on processing the captured output with FOR.

The first two lines are skipped because of using option skip=2 which means on Windows Vista and later Windows version that the first line processed by FOR is already the line with the value of interest. But the first processed line on Windows XP is the third line which is an empty line. Empty lines are always ignored by FOR.

Читайте также:  Critical service failed windows 10 при запуске ноутбука

So the next line processed on Windows XP by FOR is the line with the registry key. It is split up into substrings using the default delimiters normal space and horizontal tab which means here that HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows is assigned to the specified loop variable I and NT\CurrentVersion to next loop variable according to ASCII table because of option tokens=1,2* .

Therefore on Windows XP the IF condition is executed to case-insensitive compare the string assigned to loop variable I with ProductName which evaluates to false in this case.

Then the fifth line of reg output on Windows XP is processed like the third line of reg output on Windows Vista and later Windows versions.

The line with the value of interest is split up into three substrings. The first space/tab delimited string ProductName is assigned to specified loop variable I . The second space/tab delimited string REG_SZ is assigned to loop variable J . The rest of the line after the spaces/tabs after REG_SZ is assigned completely with the spaces to next but one loop variable K because of * at end of option string tokens=1,2* after 2 .

The IF condition is true for that line and so the string value of interest is assigned to the environment variable WindowsProduct .

The last empty line is again ignored by FOR.

So finally the environment variable WindowsProduct is defined with the string value of interest if found at all in Windows registry.

For understanding the used commands and how they work, open a command prompt window, execute there the following commands, and read entirely all help pages displayed for each command very carefully.

Get product name from WMIC for a variable in batch

I’ve been struggling to get a specific output using WMIC in batch in order to build an automatic uninstall script. The issue I’m running across is that the uninstaller for the application I’m trying to remove is created under an auto-generated SSID on each system (e.g.: C:\ProgramData<07bff8fa-c12f-46c7-8239-8ee83e21b5da>\program-name\Uninstall.exe). Because of this, I can’t build a static uninstall location based on the registry as the uninstaller string also is under the same SSID in the registry.

I’ve tried a couple of different ways of pulling the uninstall info and the only one I’ve landed on that’s come close is using WMIC:

^ and an extra carriage return, and that carriage return is the issue. It sets the variable, then clears it.

Here’s the for loop I’m trying to use to get this to work:

which means the %PROD% variable isn’t defined at all.

If I run the batch with @echo ON, I get this:

Notice the output is missing the drive letter. That’s exactly what I’m seeing so it’s weird, and also the parameter is being set, echo’d then unset.

I’ve also tried to do this via a text file relay:

Any help/advice would be most welcome!

following link provided by npocmaka, I came up with this:

which correctly outputs the product name

However, when I run it from batch as:

Which to me sounds like an issue WMIC is having with syntax or something

Читайте также:  Обновление windows 10 для пользователей с ограниченными возможностями

Credit to npocmaka for suggesting a nested FOR loop, and indiv for pointing out the escape logic for the WMIC variable

Correct syntax of the command used in batch:

Как узнать лицензионный ключ Microsoft Windows?

После замены винчестера на NVMe SSD вам так или иначе потребуется перенести на твердотельный накопитель операционную систему, в противном случае производительность компьютера не вырастет ни на йоту. Вот только в процессе клонирования диска или чистовой установки ОС может потребоваться лицензионный ключ. И если у обладателей retail-версии с этим не возникнет ровным счетом никаких проблем (код активации всегда можно найти внутри коробки с установочным DVD), то владельцев ПК или лэптопа с предустановленной Windows будет ожидать крайне неприятный сюрприз.

Лет 10 назад при покупке ноутбука или готового компьютера вы получали в свое распоряжение два диска: на одном из них находились необходимые драйверы, а на другом — дистрибутив операционной системы. Благодаря этому вы могли без труда переустановить Windows при возникновении каких-либо проблем программного характера или при замене системного накопителя, благо лицензионный ключ для активации ОС всегда можно было посмотреть на фирменной наклейке: обычно лейбл располагался на боковой или задней стенке корпуса ПК либо был приклеен к днищу лэптопа.

Времена изменились. Большинство современных машин вообще не оборудованы оптическими приводами, и в коробке с ноутбуком вы не найдете ни DVD, ни даже флешки с установочным образом операционной системы. А при осмотре корпуса максимум, что вы увидите, — логотип Windows без каких-либо дополнительных сведений о лицензии.

Сегодня производители готовых ПК и ноутбуков чаще всего поступают следующим образом:

  • лицензионный ключ «зашивается» непосредственно в UEFI, от глаз рядового пользователя он скрыт;
  • на системном накопителе создается раздел, содержащий бэкап операционной системы, — с его помощью компьютер или лэптоп можно вернуть к заводскому состоянию.

Это действительно удобно: вам больше не надо вбивать 25-значный код при переустановке операционной системы, да и о флешках с DVD можно навсегда забыть. Вот только у каждой медали есть и оборотная сторона. Стоит вам заменить жесткий диск на высокоскоростной SSD WD Black SN750 — и вы лишитесь дистрибутива Windows, а вместе с обновлением прошивки материнской платы может благополучно исчезнуть и ключ. Не говоря уже о том, что активация способна слететь даже после установки очередного апдейта из-за какого-нибудь бага.

Покупка новой лицензии взамен утраченной — перспектива не самая радужная (официальная цена Windows 10 Home составляет 199 долларов США, а Pro — и вовсе 289 долларов), поэтому мы настоятельно рекомендуем тщательно подготовиться к переходу на твердотельный накопитель, предварительно узнав заветную последовательность букв и цифр. Разберемся, как это сделать.

Извлекаем лицензионный ключ Windows из реестра с помощью скрипта

Данный способ является универсальным и подходит для Windows 7, 8.1 и 10. С помощью простого VBS-скрипта мы извлечем лицензионный ключ непосредственно из реестра операционной системы, куда он записывается в процессе активации.

1. Создайте в блокноте текстовый файл и скопируйте в него следующее:

Set WshShell = CreateObject(«WScript.Shell»)

regKey = «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\»

DigitalProductId = WshShell.RegRead(regKey & «DigitalProductId»)

WinProductName = «Windows Product Name: » & WshShell.RegRead(regKey & «ProductName») & vbNewLine

WinProductID = «Windows Product ID: » & WshShell.RegRead(regKey & «ProductID») & vbNewLine

strProductKey =»Windows Key: » & WinProductKey

WinProductID = WinProductName & WinProductID & strProductKey

regKey(66) = (regKey(66) And &HF7) Or ((isWin And 2) * 4)

Оцените статью