Как получить модель системы (название продукта, например:Proliant DL580 Gen9) с помощью SQL Query?

Я ищу способ найти модель системы, такую ​​как "Proliant DL580 Gen9", но я не могу найти способ получить это.

Системная модель

Я пытаюсь запрос ниже и использовал "master.sys.xp_regread" процедуру, чтобы получить имя модели сервера

DECLARE @ServerType VARCHAR(max)
EXEC master.sys.xp_regread @rootkey = 'HKEY_LOCAL_MACHINE',
                           @key = 'HARDWARE\DESCRIPTION\System\BIOS\0',
                           @value_name = 'SystemProductName',
                           @value = @ServerType OUTPUT;
SELECT @ServerType 

который возвращает NULL значение!

Есть ли способ получить такую ​​модель системы, как "Proliant DL580 Gen9"?

Благодарю.

2 ответа

Решение

Добрый день,

Вы можете получить модель, используя запрос ниже:

EXEC master.sys.xp_regread 
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = 'HARDWARE\DESCRIPTION\System\BIOS',
    @value_name = 'SystemProductName'
GO

Результат должен дать вам эквивалентную информацию, которую вы получите, выполнив команду wmic

wmic computersystem get model

Если вы не уверены, вы можете просто открыть реестр с помощью команды regedit, найти искомое значение и изменить параметры в приведенном выше запросе.

Например, вот некоторые общие ценности, которые нужны людям:

EXEC master.sys.xp_regread 
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = 'HARDWARE\DESCRIPTION\System\BIOS',
    @value_name = 'SystemManufacturer'
GO
EXEC master.sys.xp_regread 
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = 'HARDWARE\DESCRIPTION\System\BIOS',
    @value_name = 'SystemVersion'
GO
EXEC master.sys.xp_regread 
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = 'HARDWARE\DESCRIPTION\System\BIOS',
    @value_name = 'SystemProductName'
GO

EXEC master.sys.xp_regread 
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = 'HARDWARE\DESCRIPTION\System',
    @value_name = 'SystemBiosVersion'
GO

Спасибо, что ответили на мой вопрос. Также я нашел другой способ получить эту собственность.

DECLARE @SysInfo TABLE (Property NVARCHAR(MAX));
INSERT INTO @SysInfo (Property) 
    EXEC master.dbo.xp_cmdshell 'systeminfo | findstr /C:"System Model"';
SELECT  (SELECT LTRIM(REPLACE(Property, 'System Model:', ''))       
    FROM @SysInfo WHERE Property LIKE '%System Model%');

С уважением

Другие вопросы по тегам