如何通过SQL查询获取系统型号(产品名称如:Proliant DL580 Gen9)?

how to get the system model (product name like :Proliant DL580 Gen9) with SQL Query?

我正在寻找一种方法来找到像 "Proliant DL580 Gen9" 这样的系统模型, 但我找不到任何方法来获得它。

System Model

我尝试以下查询并使用 "master.sys.xp_regread" 程序获取服务器型号名称

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

哪个 returns NULL 值!

有没有办法得到像"Proliant DL580 Gen9"这样的系统模型?

谢谢。

美好的一天,

您可以使用以下查询获取模型:

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%');

此致