Проверка введённого лицензионного ключа в Microsoft SQL Server может потребоваться при переносе экземпляра, аудите или смене модели лицензирования. В системах с предустановленным SQL Server ключ не всегда отображается явно, но его можно определить через реестр или средства установки.
Для SQL Server 2012 и новее ключ шифруется и не хранится в открытом виде. Однако для некоторых версий возможно получить информацию о способе лицензирования (Core или CAL) через команду:
SELECT SERVERPROPERTY(‘Edition’), SERVERPROPERTY(‘ProductVersion’), SERVERPROPERTY(‘ProductLevel’);
В графическом установщике (setup.exe) доступна опция переустановки ключа через мастер изменения экземпляра. Запуск установки с параметром /ACTION=EditionUpgrade позволяет ввести новый ключ и одновременно проверить действительность старого. Если ключ недействителен, мастер выдаст ошибку без завершения процесса.
Альтернативный способ – использование PowerShell с модулем DISM для получения данных о продукте, если SQL Server установлен как часть OEM-образа:
Get-WmiObject -query ‘select * from SoftwareLicensingService’
В редакциях, распространяемых через Volume Licensing, ключ может быть задан в конфигурационном файле во время установки и недоступен напрямую после инсталляции. В таком случае проверка осуществляется через административные порталы VLSC или средств KMS/MAK-активации.
Проверка текущей версии и выпуска MS SQL Server
Для получения точной информации о версии и выпуске установленного экземпляра SQL Server выполните следующий запрос:
SELECT @@VERSION;
Результат содержит информацию о версии ядра, уровне обновлений (Service Pack или Cumulative Update) и выпуске Windows, под которой работает сервер.
Чтобы получить данные в более структурированном виде, используйте системную хранимую процедуру:
EXEC xp_msver;
Она возвращает параметры, включая:
- ProductVersion – числовой идентификатор версии (например, 15.0.2000.5)
- ProductLevel – обозначение уровня (RTM, SP1, CU2 и т.д.)
- Edition – выпуск (Enterprise, Standard, Express и др.)
Для получения только издания сервера выполните запрос:
SELECT SERVERPROPERTY('Edition');
Другие полезные свойства:
- SELECT SERVERPROPERTY(‘ProductVersion’);
- SELECT SERVERPROPERTY(‘ProductLevel’);
- SELECT SERVERPROPERTY(‘EngineEdition’);
Значения свойства EngineEdition:
- 1 – Personal или Desktop Engine
- 2 – Standard
- 3 – Enterprise
- 4 – Express
- 5 – SQL Database (PaaS)
- 6 – SQL Data Warehouse
- 8 – Managed Instance
Для полной идентификации версии сопоставьте числовое значение ProductVersion с официальным списком сборок на сайте Microsoft. Это необходимо, так как один и тот же уровень может соответствовать разным cumulative update.
Определение типа лицензии через SQL Server Management Studio
Откройте SQL Server Management Studio и подключитесь к нужному экземпляру SQL Server.
Откройте новое окно запроса и выполните следующую команду:
SELECT SERVERPROPERTY(‘Edition’), SERVERPROPERTY(‘ProductVersion’), SERVERPROPERTY(‘ProductLevel’)
Edition возвращает строку с указанием редакции, например, Enterprise Edition, Standard Edition, Express Edition. Это ключевой параметр для понимания модели лицензирования.
ProductVersion показывает номер версии, например, 15.0.2000.5 для SQL Server 2019 RTM.
ProductLevel указывает уровень обновления: RTM, SP1, CU и т.п.
Чтобы уточнить тип лицензии (Core-based или CAL), проверьте строку Edition. Например, строка Enterprise Edition: Core-based Licensing прямо указывает на лицензию по числу ядер.
Для редакций типа Express лицензия всегда бесплатная и ограничена функционально.
Если указано Evaluation, это пробная версия, действующая 180 дней. После истечения срока требуется активация ключом полной версии.
Результаты запроса позволяют оценить, активирована ли лицензия и соответствует ли она требованиям установленной среды.
Использование PowerShell для получения сведений о лицензии
Для проверки информации о лицензии установленного экземпляра SQL Server с помощью PowerShell можно использовать класс WMI из пространства имен root\Microsoft\SqlServer\ComputerManagement15
(для SQL Server 2019) или соответствующий версии экземпляра. Вызов осуществляется через командлет Get-WmiObject
.
Пример команды для получения имени продукта и версии:
Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement15" -Class SqlServiceAdvancedProperty | Where-Object { $_.PropertyName -eq "SKUName" -or $_.PropertyName -eq "Version" }
Атрибут SKUName
содержит тип лицензии, например Enterprise Edition
или Standard Edition
. Поле Version
возвращает номер версии установленного экземпляра.
Для автоматизации можно использовать фильтрацию по имени экземпляра:
Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement15" -Class SqlServiceAdvancedProperty | Where-Object { $_.ServiceName -eq "MSSQLSERVER" -and ($_.PropertyName -eq "SKUName" -or $_.PropertyName -eq "Version") }
Если установлен SQL Server 2017, используйте ComputerManagement14
. Для SQL Server 2016 – ComputerManagement13
и т.д. При использовании PowerShell 7 рекомендуется модуль SqlServer
, доступный через Install-Module -Name SqlServer
, хотя информация о лицензии через него может быть ограничена.
Чтение лицензионной информации из реестра Windows
Лицензионные данные Microsoft SQL Server хранятся в реестре Windows. Проверку следует выполнять с правами администратора, так как часть ключей доступна только при повышенных привилегиях.
Основной путь для SQL Server:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\Setup
- Альтернативно для 64-битной системы:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\<InstanceName>\Setup
Ключи, представляющие интерес:
- Edition – редакция установленного SQL Server (например, Enterprise, Standard)
- EditionType – тип лицензии (например, Core-based, Server+CAL)
- ProductCode – уникальный идентификатор продукта
- PID – введённый ключ продукта в сокращённой форме
Для чтения значений используйте reg query
или PowerShell:
reg query "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\Setup"
Пример на PowerShell:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\Setup"
Для других экземпляров замените MSSQL15.MSSQLSERVER
на актуальное имя инстанса.
Если установлен несколько экземпляров SQL Server, проверьте также ключ:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL
– список всех экземпляров
Обратите внимание: сам лицензионный ключ в явном виде не хранится. Microsoft зашифровывает ключ, и его невозможно расшифровать штатными средствами. Проверка может ограничиться сверкой редакции и типа лицензии.
Анализ файла setup bootstrap для поиска ключа
Файл setup.exe.bootstrap.log создаётся при установке SQL Server и содержит подробную информацию о каждом этапе установки, включая ввод лицензионного ключа. Его можно найти в каталоге C:\Program Files\Microsoft SQL Server\<номер_версии>\Setup Bootstrap\Log\.
Для анализа откройте самый свежий каталог по дате – он соответствует последнему запуску установщика. Внутри находится лог с расширением .log, часто называемый Summary.txt или Detail.txt, но наиболее информативен именно setup.exe.bootstrap.log.
Ищите строку, содержащую PID или Product Key. В случае ввода ключа вручную он будет зафиксирован в зашифрованном виде. Пример строки: Setting variable ‘PID’ to value ‘XXXXX-XXXXX-XXXXX-XXXXX-XXXXX’. Если ключ не указан, будет видно значение типа Using PID from media, что указывает на автоматическое применение ключа из установочного носителя.
Для точного определения происхождения ключа проверьте блок Configuration properties – он включает путь к файлу ответов или сведения об используемой сборке (Evaluation, Retail, Volume Licensing). Это позволяет определить, активирована ли версия автоматически или требуется ввод ключа вручную.
Используйте текстовый редактор с поддержкой поиска по ключевым словам: PID, ProductKey, License. Это ускорит навигацию по логам, особенно в случае установки с множеством компонентов.
Проверка лицензии с помощью SQL Server Error Logs
Для того чтобы проверить лицензию в Microsoft SQL Server, можно использовать журналы ошибок SQL Server. Эти журналы содержат полезную информацию о типе лицензии, установленной на сервере, и о других аспектах работы SQL Server. Журнал ошибок записывается в файл, который по умолчанию хранится в каталоге SQL Server.
Процесс проверки лицензии через журналы ошибок прост. Сначала необходимо найти файл журнала ошибок SQL Server. Обычно он располагается в папке, которая указана при установке SQL Server, например:
C:\Program Files\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Log\ERRORLOG
В этом файле можно найти информацию о лицензии, включая тип лицензии и её активность. Например, при запуске SQL Server, в журнале ошибок появится строка, в которой будет указана информация о лицензировании:
Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) Nov 19 2019 12:21:24 Copyright (C) Microsoft Corporation Enterprise Edition (64-bit) on Windows Server 2016 Standard 10.0 (Build 14393: )
В этом примере указана версия SQL Server (2019), а также тип лицензии – Enterprise Edition. Чтобы точно определить, какой тип лицензии используется, необходимо искать строку, содержащую «Edition». В зависимости от типа издания, будет указано «Enterprise», «Standard», «Web», «Express» и другие.
Также важно проверить, нет ли сообщений об ошибках или предупреждениях, связанных с лицензией, таких как ограничения на количество пользователей или использование функций, доступных только в определённых версиях SQL Server. Если такая информация присутствует в журнале ошибок, это может указывать на несоответствие лицензии или проблемы с её активацией.
Для удобства, можно выполнить поиск по ключевым словам, связанным с лицензией, например, «Edition», «license», «activation». Это позволит быстро найти строки, содержащие информацию о лицензии и её состоянии.
Проверка лицензии с помощью журнала ошибок является полезным инструментом для диагностики проблем, связанных с лицензированием, и помогает убедиться в правильности настроек и активации SQL Server.
Уточнение состояния активации через средство slmgr
Для проверки состояния активации в MS SQL можно использовать утилиту slmgr.vbs, которая предоставляет детализированную информацию о лицензии и активации. Для этого откройте командную строку с правами администратора и выполните следующие шаги:
1. Откройте командную строку и выполните команду:
slmgr.vbs /dli
Эта команда выведет информацию о текущем состоянии активации, включая статус лицензии и тип активации.
2. Для получения более подробной информации используйте команду:
slmgr.vbs /dlv
Она отобразит расширенную информацию о лицензионном ключе, сроках активации и других характеристиках.
3. Если необходимо обновить или изменить ключ активации, выполните команду:
slmgr.vbs /ipk <ключ_продукта>
После этого следует снова выполнить команду активации:
slmgr.vbs /ato
4. Для удаления ключа активации используйте команду:
slmgr.vbs /upk
Эти команды позволяют не только проверить текущий статус, но и при необходимости выполнить действия по активации или обновлению лицензии в MS SQL.
Проверка соответствия ключа установленной редакции SQL Server
Для того чтобы удостовериться в том, что введённый ключ лицензии соответствует установленной редакции SQL Server, можно использовать несколько методов. Один из них – проверка через системные представления SQL Server. Важно понимать, что ключ активации зависит от типа лицензии и редакции SQL Server, которая была установлена.
1. Откройте SQL Server Management Studio и подключитесь к серверу. Затем выполните запрос к представлению `sys.dm_os_sys_info`:
SELECT sqlserver_start_time, sqlserver_version, product_version, edition FROM sys.dm_os_sys_info;
2. Чтобы проверить, что ключ подходит именно для данной версии, воспользуйтесь инструментом `sqlservr.exe` для извлечения текущей версии SQL Server. Откройте командную строку и перейдите в каталог с установленной программой SQL Server. Затем выполните команду:
sqlservr.exe -q
Эта команда выведет информацию о текущей версии SQL Server и её редакции. Сравните её с тем, что указано в вашем лицензионном ключе.
3. Другим способом является использование PowerShell. Запустите скрипт:
Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -like "Microsoft SQL Server*"} | Select-Object Name, Version
Этот запрос также выведет сведения о версии и редакции установленного SQL Server. Если версия не совпадает с вашей лицензией, возможно, ключ был введён неправильно или лицензия не соответствует установленной редакции.
Вопрос-ответ:
Как узнать, что введённый ключ лицензии для MS SQL верный?
Чтобы проверить правильность ключа лицензии в MS SQL, можно воспользоваться утилитой командной строки. Откройте SQL Server Management Studio (SSMS), подключитесь к серверу и выполните запрос, который проверит состояние лицензии. Если ключ верен, то сервер будет работать в соответствии с указанной версией и ограничениями лицензии.
Какие шаги нужно предпринять, чтобы проверить лицензирование SQL Server?
Для проверки лицензирования в SQL Server нужно выполнить несколько действий. В первую очередь откройте SQL Server Management Studio и подключитесь к серверу. Затем используйте запрос: `SELECT SERVERPROPERTY(‘ProductLevel’)` для получения информации о текущей версии и уровне лицензии. Если сервер настроен правильно, вы увидите информацию о типе лицензии.
Как проверить, активирована ли лицензия на SQL Server?
Для проверки активации лицензии SQL Server можно использовать команду в SQL Server Management Studio: `SELECT SERVERPROPERTY(‘ProductVersion’)`. Это покажет номер версии и информацию о лицензии. Также можно проверить состояние активации через панель управления SQL Server, в разделе лицензий, если сервер подключен к сети и активирован.
Почему MS SQL не принимает мой лицензионный ключ?
Если MS SQL не принимает лицензионный ключ, возможные причины могут быть различными. Например, ключ может быть введён неправильно, или он может быть не совместим с вашей версией SQL Server. Рекомендуется проверить, соответствует ли ключ версии продукта, которую вы пытаетесь активировать, и, если возможно, попробовать использовать другой ключ или связаться с поддержкой.
Как проверить статус лицензии на SQL Server через командную строку?
Чтобы проверить статус лицензии на SQL Server через командную строку, откройте Command Prompt и выполните команду `sqlcmd -S <имя_сервера> -E` для подключения к серверу. Затем используйте запрос `SELECT SERVERPROPERTY(‘Edition’)` для получения информации о текущей версии и типе лицензии. Это покажет, какой тип лицензии активен на сервере.