Produkey — это бесплатная утилита, которая служит для отображения информации о серийных номерах (ключах продуктов) программного обеспечения Microsoft, установленных на компьютере. Утилита поможет вам, если вы хотите переустановить продукт, но потеряли его серийный номер, или просто запутались, какая лицензия на каком компьютере у вас установлена. Produkey отображает ключ продукта следующего ПО:
- Microsoft Office
- Windows
- Exchange Server
- SQL Server
Как пользоваться ProduKey
Утилита не требует инсталляции. Для её использования достаточно скачать её с официального сайта , разархивировать и запустить.
Скачайте последнюю версию программы с официального сайта: http://www.nirsoft.net/utils/produkey.zip
Откройте папку со скачанным архивом. Для этого в браузере Google Chrome нажмите на стрелочку рядом со скачанным файлом и выберите Показать в папке :
Как узнать ключ Windows установленной на компьютере и ноутбуке
Нажмите Извлечь… :
Укажите путь, куда вы хотите распаковать архив и нажмите ОК :
Откройте папку, в которую вы распаковали архив, и запустите файл ProduKey.exe :
Запускается программа-утилита ProduKey. В поле Product Key вы увидите серийные номера продуктов Майкрософт, которые установлены на данном компьютере :
Источник: compfixer.info
Как найти GUID продукта установленной установки MSI?
Мне нужно найти GUID продукта на установить файл MSI для выполнения обслуживания, такого как исправление, удаление, а также для целей аудита.
автор: Stein Åsmul
1 ответов
Короткая Версия
информация ниже значительно выросла с течением времени и, возможно, стала немного слишком сложной. как быстро получить коды продуктов? (четыре подхода):
1. Используйте Powershell «One-liner»
прокрутите вниз для скриншота и шаг за шагом. Отказ от ответственности также ниже — незначительные или умеренные риски, в зависимости от того, кто вы спрашиваете. Мне подходит. Любой самостоятельного ремонта срабатывает с помощью этой опции как правило, можно отменить. The проверка целостности пакета triggered добавляет некоторый журнал событий «шум», хотя.
Примечание! IdentifyingNumber is the ProductCode (особенность WMI).
Как узнать ключ Windows на своем ПК ноутбуке
get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize
быстрый запуск Powershell: hold клавиша Windows , нажмите R , введите «powershell» и нажмите Enter
2. Использовать VBScript
описано ниже в разделе «альтернативные инструменты» (раздел 3). Этот параметр может быть безопасное чем Powershell по причинам, подробно описанным ниже. В сущности это (много)быстрее и не способен запускать MSI self-repair, так как он не проходит через WMI (он обращается к MSI COM API напрямую — на скорость). однако он более задействован, чем параметр Powershell (несколько строк кода).
3. Регистратура Поиск
некоторые клянутся, глядя вещи в реестре. Не мой рекомендуемый подход — мне нравится проходить через правильные API (или другими словами: вызовы функций ОС). Всегда есть странные исключения, учитываемые только внутренними компонентами API-реализации:
- HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall
- HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionUninstall
- HKCUSoftwareMicrosoftWindowsCurrentVersionUninstall
4. Исходный файл MSI / Wix Source
вы можете найти Product Code in the Property table любого файла MSI (и любого другого свойства). Однако GUID может быть (редко) переопределен преобразованием, применяемым во время установки, и, следовательно, не соответствует GUID, под которым зарегистрирован продукт (подход 1 и 2 выше сообщит реальный код продукта — который зарегистрирован в Windows — в таких редких сценариях).
вам нужен инструмент для просмотра файлов MSI. См. в нижней части следующего ответа список бесплатных инструменты, которые вы можете скачать (или см. быстрый вариант ниже): как я могу сравнить содержимое двух (или более) файлов MSI?
обновление: для удобства и потребность в скорости :-), скачать SuperOrca без промедления и суеты от это прямая — скачать hotlink — инструмент достаточно хорош, чтобы выполнить работу — установить, открыть MSI и перейти прямо к таблица свойств и найти ProductCode строки (пожалуйста, всегда проверяйте вирус прямой-скачать hotlink-очевидно — вы можете использовать virustotal.com для этого-онлайн-сканирование с использованием десятков антивирусных и вредоносных программ для сканирования того, что вы загружаете).
и ниже вы найдете оригинальный ответ, который «органично» в много деталей.
может ознакомиться с «удаление пакетов MSI» раздел ниже, если это задача, которую вам нужно выполнять.
Получить Коды Продукта
- не удается использовать PowerShell? В Разделе «Альтернатива Инструменты » раздел ниже.
- хотите удалить? см. раздел «удаление пакетов MSI» ниже.
пожар Powershell (удерживая клавишу Windows, нажмите R, отпустите клавишу Windows, введите «powershell» и нажмите OK) и выполните приведенную ниже команду, чтобы получить список установленных пакетов MSI код продукции вместе с путь к пакету локального кэша и товар имя (разверните окно PowerShell, чтобы избежать усеченных имен).
перед запуском этой командной строки, пожалуйста, прочитайте отказ от ответственности ниже (ничего опасного, просто некоторые потенциальные неприятности). Раздел 3 в разделе «альтернативные инструменты» показывает альтернативный не-WMI способ получить ту же информацию с помощью VBScript. Если вы пытаетесь удалить пакет, ниже приведен раздел с некоторым образцом msiexec.команды исполняемые строки:
get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize
на выход должны будьте похожи на это:
Как найти GUID продукта установленной MSI-установки?
Мне нужно найти product GUID для установленного MSI-файла, чтобы выполнить обслуживание, такое как патч , деинсталляция (how-to uninstall), а также для аудиторских целей .
58 2015-04-29T07:54:30+00:00 2
Stein Åsmul
Редактировал вопрос 8-го июля 2019 в 3:51
Решение / Ответ
Stein Åsmul
29-го апреля 2015 в 7:54
2015-04-29T07:54:30+00:00
Дополнительно
Для получения кода обновления: https://stackoverflow.com/questions/46637094/how-can-i-find-the-upgrade-code-for-an-installed-msi-file/46637095#46637095
Краткая версия
Использовать Powershell «one-liner» .
get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize
Быстрый запуск Powershell: удерживайте клавишу Windows , нажмите R , введите «powershell» и нажмите Enter 2. Использовать VBScript
Описан ниже в разделе «Альтернативные инструменты» (раздел 3). Этот вариант может быть более безопасным, чем Powershell, по причинам, подробно описанным ниже.
По сути, он (намного) быстрее и не способен вызвать самовосстановление MSI, поскольку не проходит через WMI (он обращается к MSI COM API напрямую — с молниеносной скоростью). *Однако он более трудоемок, чем вариант с Powershell (несколько строк кода). 3. Поиск реестра
Некоторые клянутся, что ищут нужные вещи в реестре. Я не рекомендую такой подход — мне нравится обращаться к соответствующим API (или другими словами: к вызовам функций ОС). Всегда есть странные исключения, объясняемые только внутренними особенностями API-реализации:
- HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall
- HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionUninstall
- HKCUSoftwareMicrosoftWindowsCurrentVersionUninstall
Оригинальный MSI файл / WiX Source
Вы можете найти Код продукта в Таблице свойств любого MSI файла (а также любое другое свойство). Однако GUID может быть переопределен (редко) преобразованием, применяемым во время установки, и, следовательно, не соответствовать GUID, под которым зарегистрирован продукт (подходы 1 и 2, описанные выше, сообщают реальный код продукта, зарегистрированный в Windows, в таких редких случаях). Вам нужен инструмент для просмотра файлов MSI. Список бесплатных инструментов, которые можно загрузить, см. в нижней части следующего ответа (или см. быстрый вариант ниже): https://stackoverflow.com/questions/48482545/how-can-i-compare-the-content-of-two-or-more-msi-files/48482546#48482546. ОБНОВЛЕНИЕ: Для удобства и потребности в скорости :-), скачайте SuperOrca без промедления и суеты с этой прямой ссылки — инструмент достаточно хорош для выполнения работы — установите, откройте MSI и перейдите прямо к таблице свойств и найдите строку ProductCode (всегда проверяйте на вирусы прямые ссылки — очевидно — вы можете использовать virustotal.com для этого — онлайн проверка с использованием десятков антивирусных и вредоносных программ для проверки того, что вы загружаете).
Orca — это собственный инструмент Microsoft’, он устанавливается с Visual Studio и Windows SDK. Попробуйте найти Orca-x86_en-us.msi — в разделе Program Files (x86) и установите MSI, если найдете.
А ниже вы найдете оригинальный ответ, который «органично разросся» до множества деталей. Возможно, вы увидите раздел «Установка MSI-пакетов» ниже, если вам нужно выполнить именно эту задачу.
Получение кодов продуктов
- Не можете использовать PowerShell? См. раздел «Альтернативные инструменты» ниже.
- Нужна деинсталляция? См. раздел «Деинсталляция MSI-пакетов» ниже. Запустите Powershell (удерживая клавишу Windows, нажмите R, отпустите клавишу Windows, введите «powershell» и нажмите OK) и выполните команду ниже, чтобы получить список установленных пакетов MSI коды продуктов вместе с путем к локальному кэш-пакету и названием продукта (увеличьте окно PowerShell, чтобы избежать усеченных имен). Перед запуском этой командной строки, пожалуйста, прочитайте приведенный ниже отказ от ответственности (ничего опасного, просто некоторые потенциальные неудобства). В разделе 3 в разделе «Альтернативные инструменты» показан альтернативный способ получения той же информации с помощью VBScript, не связанный с WMI. Если вы пытаетесь удалить пакет, ниже есть раздел с примерами командных строк msiexec.exe:
get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize
вывод должен быть примерно таким: *Примечание! По какой-то странной причине «Код продукта»* в WMI называется «Идентификационный номер». Другими словами, на рисунке выше IdentifyingNumber является ProductCode. Если вам нужно запустить этот запрос удаленно для множества удаленных компьютеров*, смотрите раздел «Retrieve Product Codes From A Remote Computer*» ниже.
ОТВЕТСТВЕННОЕ ЗАЯВЛЕНИЕ (важно, пожалуйста, прочитайте перед выполнением команды!): Из-за странного дизайна Microsoft, любой вызов WMI к «Win32_Product» (например, команда PowerShell, приведенная ниже) вызовет оценку владения пакета. Помимо того, что это достаточно медленно, в редких случаях это может > вызвать MSI. вызвать самовосстановление MSI. Это может быть небольшой пакет или что-то огромный — например, Visual Studio. В большинстве случаев этого не происходит, но существует риск. Не запускайте эту команду прямо перед важной встречей — это не опасно (она доступна только для чтения), но может привести к долгому восстановлению в очень редких случаях (я думаю, вы можете отменить самовосстановление также — если оно активно не предотвращается данным пакетом, но оно перезапустится, если вы вызовете Win32_Product снова, и это будет продолжаться, пока вы не позволите самовосстановлению завершиться — иногда оно может продолжаться, даже если вы позволите ему завершиться: https://stackoverflow.com/questions/5501028/how-can-i-determine-what-causes-repeated-windows-installer-self-repair/6066263#6066263).
И просто для записи: некоторые люди сообщают, что их журналы событий заполняются записями MsiInstaller EventID 1035 (см. ответ Code Chief’a) — по-видимому, это вызвано WMI-запросами к классу Win32_Product (лично я никогда такого не видел). Это *не напрямую связано с командой Powershell, предложенной выше, это в контексте общего использования WIM класса Win32_Product. Вы также можете получить результат в виде списка (вместо таблицы):
get-wmiobject -class Win32_Product
В этом случае вывод будет выглядеть следующим образом:
Получение кодов продуктов с удаленного компьютера
Теоретически вы должны иметь возможность указывать имя удаленного компьютера в самой команде. Вот та же команда, что и выше, запущенная на машине «RemoteMachine» (добавлена секция «-ComputerName RemoteMachine»):
get-wmiobject Win32_Product -ComputerName RemoteMachine | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize
Это может сработать, если вы работаете с правами администратора домена в соответствующем домене. В среде рабочей группы (малый офис / домашняя сеть) вам, вероятно, придется добавить учетные данные пользователя непосредственно в вызовы WMI, чтобы заставить его работать. Кроме того, на удаленные соединения в WMI влияют (как минимум) Windows Firewall, настройки DCOM и User Account Control (UAC) (плюс любые дополнительные факторы, не связанные с Microsoft — например, реальные брандмауэры, программные брандмауэры сторонних производителей, программы безопасности различных видов и т.д.). Будет ли это работать или нет, зависит от вашей точной настройки.
Удаленное подключение к WMI с помощью PowerShell UPDATE: Обширный раздел об удаленном запуске WMI можно найти в этом ответе: https://stackoverflow.com/questions/46637094/how-can-i-find-the-upgrade-code-for-an-installed-msi-file/46637095#46637095. Похоже, что правило брандмауэра и подавление запроса UAC с помощью твика реестра может заставить все работать в сетевой среде рабочей группы. Не рекомендуется вносить изменения с точки зрения безопасности, но для меня это сработало.
Альтернативные инструменты
- Начнем с встроенного в Windows WMI инструмента: wbemtest.exe .
- Запустите wbemtest.exe (удерживая клавишу Windows, нажмите R, отпустите клавишу Windows, введите «wbemtest.exe» и нажмите OK).
- Нажмите подключиться, затем OK (пространство имен по умолчанию — rootcimv2), затем снова нажмите «подключиться».
- Нажмите «Query» и введите эту WQL-команду (SQL flavor): SELECT IdentifyingNumber,Name,Version FROM Win32_Product и нажмите «Use» (или эквивалент — инструмент будет локализован).
- Пример выходного скриншота (усеченный). Не самое приятное форматирование, но вы можете получить необходимые данные. IdentifyingNumber — код продукта MSI:
- Далее, вы можете попробовать использовать пользовательский, более полнофункциональный инструмент WMI, такой как WMIExplorer.exe .
- Он не входит в состав Windows. Однако это очень хороший инструмент. Рекомендуется.
- Проверьте его на сайте: https://github.com/vinaypamnani/wmie2/releases.
- Запустите инструмент, нажмите Connect, дважды щелкните ROOTCIMV2
- На вкладке «Query» введите следующий запрос SELECT IdentifyingNumber,Name,Version FROM Win32_Product и нажмите Execute.
- Скриншот пропущен, приложение требует слишком много площади экрана.
- Наконец, вы можете попробовать VBScript для доступа к информации через интерфейс автоматизации MSI (основная функция Windows — она не связана с WMI).
- Скопируйте приведенный ниже сценарий и вставьте его в файл *.vbs на рабочем столе, а затем попробуйте запустить его двойным щелчком мыши. Ваш рабочий стол должен быть доступен для записи, или вы можете использовать любое другое доступное для записи место.
- Это не лучший VBScript. Терпкость была предпочтительнее, чем обработка ошибок и полнота, но он должен выполнять работу с минимальной сложностью.
- Выходной файл создается в папке, из которой вы запускаете сценарий (папка должна быть доступна для записи). Выходной файл называется msiinfo.csv .
- Дважды щелкните файл, чтобы открыть его в программе для работы с электронными таблицами, выберите запятую в качестве разделителя при импорте — ИЛИ — просто откройте файл в Блокноте или любой программе для просмотра текста.
- Открытие в электронной таблице позволит расширить возможности сортировки.
- Этот сценарий можно легко адаптировать, чтобы показать значительное количество дополнительных деталей об установке MSI. Демонстрацию этого можно найти здесь: https://stackoverflow.com/questions/28963089/how-to-find-out-which-products-are-installed-newer-product-are-already-install/28971679#28971679.
‘ Retrieve all ProductCodes (with ProductName and ProductVersion) Set fso = CreateObject(«Scripting.FileSystemObject») Set output = fso.CreateTextFile(«msiinfo.csv», True, True) Set installer = CreateObject(«WindowsInstaller.Installer») On Error Resume Next ‘ we ignore all errors For Each product In installer.ProductsEx(«», «», 7) productcode = product.ProductCode name = product.InstallProperty(«ProductName») version=product.InstallProperty(«VersionString») output.writeline (productcode , » «, » C:My.log» REBOOT=ReallySuppress
Быстрое объяснение параметров:
/X = run uninstall sequence = product code for product to uninstall /QN = run completely silently /L*V «C:My.log»= verbose logging at specified path REBOOT=ReallySuppress = avoid unexpected, sudden reboot
Здесь есть полный справочник по деинсталляции MSI (различные способы деинсталляции MSI-пакетов): https://stackoverflow.com/questions/450027/uninstalling-an-msi-file-from-the-command-line-without-using-msiexec/1055933#1055933. Существует множество различных способов деинсталляции.
Если вы пишете пакетный файл, пожалуйста, посмотрите раздел 3 в вышеупомянутом ответе по ссылке для нескольких распространенных и стандартных вариантов командной строки деинсталляции. И краткая ссылка на msiexec.exe (параметры командной строки) (обзор командной строки для msiexec.exe из MSDN). А также версия Technet.
Получение других свойств / информации MSI (например, код обновления)
ОБНОВЛЕНИЕ: пожалуйста, найдите новый ответ о том, как найти код обновления для установленных пакетов вместо ручного поиска кода в файлах MSI. Для установленных пакетов это гораздо надежнее.
Если пакет не установлен, вам все равно придется искать в MSI-файле (или в исходном файле. используемого для компиляции MSI), чтобы найти код обновления. Оставляем в более старом разделе ниже: Если вы хотите получить UpgradeCode или другие свойства MSI, вы можете открыть кэшированный установочный MSI для продукта из места, указанного «LocalPackage» на изображении выше (что-то вроде: C:WINDOWSInstaller50c080ae.msi — это шестнадцатеричное имя файла, уникальное для каждой системы).
Затем вы смотрите в таблице «Property table» на UpgradeCode (возможно, UpgradeCode переопределен в трансформации — чтобы быть уверенным, что вы получите правильное значение, вам нужно получить код программно из системы — я предоставлю скрипт для этого в ближайшее время. Однако код обновления, найденный в кэшированном MSI, обычно является правильным).
Чтобы открыть кэшированные файлы MSI, используйте Orca или другой инструмент упаковки. Вот обсуждение различных инструментов (подойдет любой из них): https://stackoverflow.com/questions/1544292/what-installation-product-to-use-installshield-wix-wise-advanced-installer/1546941#1546941. Если у вас не установлен такой инструмент, то лучше всего попробовать Super Orca (он прост в использовании, но не тестировался мной).
UPDATE: вот новый ответ с информацией о различных бесплатных продуктах, которые можно использовать для просмотра файлов MSI: https://stackoverflow.com/questions/48482545/how-can-i-compare-the-content-of-two-or-more-msi-files/48482546#48482546 Если у вас установлена Visual Studio, попробуйте найти Orca-x86_en-us.msi в разделе Program Files (x86) и установить его (это собственная, официальная программа просмотра и редактирования MSI от Microsoft). Затем найдите Orca в меню «Пуск».
Время пройдёт мгновенно :-). Технически Orca устанавливается как часть Windows SDK (не Visual Studio), но Windows SDK поставляется в комплекте с Visual Studio. Если у вас нет установленной Visual Studio, возможно, вы знаете кого-то, у кого она установлена? Просто попросите их найти этот MSI и отправить вам (это крошечный файл размером в полмиллибайта) — это займет у них несколько секунд.
UPDATE: вам понадобится несколько CAB-файлов, а также MSI — их можно найти в той же папке, где находится MSI. Если нет, вы всегда можете скачать Windows SDK (он бесплатный, но большой — и все, что вы установите, будет замедлять работу вашего компьютера). Я не уверен, какая часть SDK устанавливает Orca MSI. Если вы знаете, пожалуйста, отредактируйте и добавьте подробности здесь.
Вот более полная статья по вопросу удаления MSI: https://stackoverflow.com/questions/450027/uninstalling-an-msi-file-from-the-command-line-without-using-msiexec/1055933#1055933
Источник: kzen.dev