是否可以独立于操作系统获取主硬盘序列号? 在Windows中使用WMI或DllImport相当容易,但是我找不到关于linux的任何文档。 另外,有没有办法获得跨平台唯一的机器ID? 附言我不在乎虚拟机克隆
答案 0 :(得分:2)
在linux终端中,您可以使用以下命令来获取HDD的SERIAL。
udevadm info --query=all --name=/dev/sda | grep ID_SERIAL
其中/dev/sda
通常是主HDD。
您可以使用如下所示的静态函数来调用Bash
public static string Bash(this string cmd)
{
var escapedArgs = cmd.Replace("\"", "\\\"");
var process = new Process()
{
StartInfo = new ProcessStartInfo
{
FileName = "/bin/bash",
Arguments = $"-c \"{escapedArgs}\"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
process.Start();
string result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return result;
}
然后执行
var output = "udevadm info --query=all --name=/dev/sda | grep ID_SERIAL".Bash();
答案 1 :(得分:1)
尝试一下:
udevadm info --query=all --name=/dev/sda | grep ID_SERIAL
还有其他方法,但是这种方法不需要root权限。