Sql server 如何使用SQL查询获取系统模型(产品名称如:Proliant DL580 Gen9)?

Sql server 如何使用SQL查询获取系统模型(产品名称如:Proliant DL580 Gen9)?,sql-server,tsql,server,server-configuration,Sql Server,Tsql,Server,Server Configuration,我正在寻找一种方法来找到像Proliant DL580 Gen9这样的系统模型, 但是我找不到任何方法来获得这个 我尝试下面的查询,并使用master.sys.xp_重新读取过程获取服务器型号名称 DECLARE @ServerType VARCHAR(max) EXEC master.sys.xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = 'HARDWARE\DESCRIPTION\Sy

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

我尝试下面的查询,并使用master.sys.xp_重新读取过程获取服务器型号名称

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 
返回空值

有没有办法获得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%');

致以最诚挚的问候

请看一看,我建议您使用PowerShell而不是T-SQL执行此任务:获取WmiObject Win32_Processor.name非常欢迎您:。请记住,Doc xp_cmdshell中的as点是一个扩展存储点,它生成一个Windows命令shell并传入一个字符串以供执行。换句话说,这不是一个查询,而是一个windows命令。您也可以这样使用wmic命令。默认情况下,xp_cmdshell处于禁用状态,您需要重新配置服务器才能使用它,这可能被视为打开安全窗口。xp_regread也是扩展存储的,但是如果用户拥有正确的权限,它不需要打开任何安全配置,但是xp_regread是Undocumented谢谢您的提示;我无法得到系统模型,我不得不使用它