如何获得与Linux / Windows兼容的硬盘序列号



有没有办法独立于操作系统获取主硬盘序列号?在Windows中,使用WMI或DllImport很容易,但我找不到任何关于linux的文档。或者,有没有办法获取跨平台的唯一机器 ID?附言我不在乎病毒机器克隆

在linux终端中,您可以使用以下命令来获取HDD的串行。

udevadm info --query=all --name=/dev/sda | grep ID_SERIAL 

其中/dev/sda通常是主硬盘。

你可以使用如下所示的静态函数来调用 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();

试试这个:

udevadm info --query=all --name=/dev/sda | grep ID_SERIAL

还有其他方法,但这种方法不需要root权限。

最新更新