在某些情况下无法在 C# 应用程序中获取驱动器序列号

问题描述 投票:0回答:0
public static string? GetDriveSerialNumber()
    {
        var moSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
        
        foreach (var o in moSearcher.Get())
        {
            var wmiHd = (ManagementObject)o;
            if(wmiHd==null)
            {
                continue;
            }

            if (wmiHd["SerialNumber"]==null)
            {
                myApi.LoggerOut(LogCode.LogWarn, "serial number is null");
                continue;
            }
            var serialNumber = wmiHd["SerialNumber"].ToString();
            
            if (string.IsNullOrEmpty(serialNumber))
            {
                continue;
            }
            return serialNumber;
        }
        return null;
    }

在某些机器上它不起作用。看起来它为虚拟磁盘返回 null。是真的吗?任何解决方法?

尝试将它安装在多台 Windows Server 2019 x64 的服务器上。在具有物理存储的计算机上运行良好。不适用于虚拟磁盘。

c# wmi virtual disk serial-number
© www.soinside.com 2019 - 2024. All rights reserved.