【问题标题】:SQL Server get Unique 'BIOS' string?SQL Server 获取唯一的“BIOS”字符串?
【发布时间】:2011-09-02 16:00:37
【问题描述】:

在 Windows 中,我们可以获得一个表示 BIOS 的唯一字符串(该机器唯一)

在 SQL Server 中是否有任何可比的东西,我可以返回该 SQL Server 安装的标识或 BIOS(该安装唯一?)

【问题讨论】:

  • 您在 Windows 之外执行此操作的方法是什么?类似Get Hardware ID
  • 是的,基本上只使用 C#。我只需要一个唯一的密钥,该密钥对于该数据库的安装是唯一的。
  • 到那个安装?如果那个盒子上有多个 SQL Server 实例,它们应该都返回相同的键吗?
  • 该服务器安装好了。因此,如果有 2 个 SQL Server 2008 实例(Server1、Server2),它们应该各自返回一个唯一键

标签: sql sql-server-2008 bios


【解决方案1】:

一个 MAC 地址,也许……虽然每台机器可能不止一个。

CREATE TABLE #ipconfig(info varchar(256) null)
INSERT INTO #ipconfig EXEC master..xp_cmdshell 'ipconfig/all'
SELECT SubString(info, CharIndex(':', info) + 1, 99) AS MAC FROM #ipconfig
WHERE info Like '%Physical Address%'
DROP TABLE #ipconfig

【讨论】:

  • SQL Server 阻止了对组件“xp_cmdshell”的过程“sys.xp_cmdshell”的访问,因为该组件作为该服务器安全配置的一部分被关闭。系统管理员可以使用 sp_configure 启用“xp_cmdshell”的使用。有关启用“xp_cmdshell”的详细信息,请参阅 SQL Server 联机丛书中的“表面区域配置”。
  • 在不先启用 xp_cmdshell 的情况下,我有什么办法可以做到这一点?我可能并不总是管理员......
【解决方案2】:

我已经构建了扩展的 stroed 程序作为 WMI 的桥梁 你可以查询

exec xp_wmiv3 'SELECT * FROM Win32_BIOS'

可以在http://bummisoft.de/download/XP_WMI.zip下载。 包含 32 位和 64 位服务器的版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多