有没有办法独立于操作系统获取主硬盘序列号? 在 Windows 中使用 WMI 或 DllImport 非常容易,但我找不到任何有关 linux 的文档。 或者有没有办法获得跨平台唯一的机器ID? 附:我不关心虚拟机克隆
最佳答案
在 Linux 终端中,您可以使用以下命令来获取硬盘的序列号。
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();
关于c# - 如何获取与linux/windows兼容的硬盘序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54325155/