gpt4 book ai didi

c# - 是否可以确定 Environment.SpecialFolder.System 驱动器的 Win32_DiskDrive SerialNumber?

转载 作者:可可西里 更新时间:2023-11-01 10:10:42 25 4
gpt4 key购买 nike

我一直在兜圈子,似乎也无法在谷歌上找到答案。

正如标题所说,如果我得到当前正在运行的驱动器盘符,让我们这样说:Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System));然后我可以确定它的 Win32_DiskDrive SerialNumber 吗?我找不到链接它们的方法。

这是制造商的 S/N,不是 VolumeSerialNumber。

提前致谢

最佳答案

您可以使用 ManagmentObjectSearch结合 ASSOCIATORS OF声明:

public static string GetSerialNumber(string logicalDrive)
{
using (var partitionsQuery = new ManagementObjectSearcher(string.Format("ASSOCIATORS OF {{Win32_LogicalDisk.DeviceID='{0}'}} WHERE ResultClass = Win32_DiskPartition", logicalDrive)))
{
foreach (var results in partitionsQuery.Get())
{
using (var diskDrives = new ManagementObjectSearcher(string.Format("ASSOCIATORS OF {{Win32_DiskPartition.DeviceID='{0}'}} WHERE ResultClass=Win32_DiskDrive", results["DeviceID"])))
{
foreach (var d in diskDrives.Get())
{
Console.WriteLine("Serial: " + d["SerialNumber"]);

return d["SerialNumber"].ToString();
}
}
}
}

return null;
}

用法:

var num = GetSerialNumber(Path.GetPathRoot(Environment.SystemDirectory).TrimEnd(new [] {'\\'}));

注意:不要忘记从 Path.GetPathRoot 返回的路径中删除反斜杠。

关于c# - 是否可以确定 Environment.SpecialFolder.System 驱动器的 Win32_DiskDrive SerialNumber?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57558122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com