我想通过软件解决方案查找各种 Windows(XP、Vista、2003、2008)和 Linux(Ubuntu、Debian、Fedora)机器的制造商、型号和序列号。
目前我们的硬件库存已经过时,所以我想要一种通过软件解决方案快速获取这些信息的快速方法(所以我不需要接近每台计算机来阅读标签)。
我想编写这样的脚本,理想情况下它不需要任何 3rd 方应用程序,如果理想情况下它会是独立的,因此它很容易移植。
知道如何最好地做到这一点吗?如果理想情况下有一个预先构建的(免费)解决方案,我希望它向原始文本或 MySQL 数据库报告。理想情况下是一个小型独立工具,我不想在每台 PC 上安装东西。如上所述,我非常乐意使用预构建的操作系统工具编写脚本。我知道这是可能的,因为我已经看到其他应用程序报告了此信息(尽管在带有其他我不需要的东西的大量散装包中,例如 Spiceworks)。
对于 Linux,我会说看看 dmidecode,它通常是预先安装的,或者可以从发行版的存储库中轻松安装。
这将生成系统上所有硬件的纯文本报告,包括序列号。
对于 Windows,您可以使用快速的 powershell 脚本来包装 WMI,如下所示:
如果您输入一个列出所有计算机的文本文件,如下所示:
您最终会得到一张漂亮的计算机和硬件详细信息表。如果需要存档数据,请使用 export-csv cmdlet 将输出直接转储到文件中。
有一个出色的(尽管是商业的)解决方案可以做到这一点(我相信原始文本将是 csv 格式),称为 ISI 快照:http ://www.isiisi.com/snapshot.htm
它将很快获得所有这些信息。
我提到它是因为您说“如果有预构建解决方案”......
编辑:还要检查 /proc/cpuinfo 和 lsattr -El sys0
看看SpiceWorks。SpiceWorks 使用 WMI 和 SSH 从 Windows、Mac 和 Linux 机器收集这些信息。不是脚本,而是一个完整的解决方案,包括您在此处寻找的本地数据库。至少值得一看。
我认为您可以使用WMI获取 Windows 信息,如果您具有管理员权限,则可以远程获取信息。
对于 Linux 上的硬盘驱动器,您应该能够使用smartmontools库中包含的 smartctl 之类的工具来获取所需的信息,例如,这是我的驱动器当前报告的内容:
从这些信息中,您可以很容易地编写脚本以使用 netcat 将其发送回远程服务器,然后将其添加到 MySQL 数据库中。