JasonTsang
V2EX  ›  C#

c# 无法获取 VMware 虚拟机的硬盘 ID

  •  
  •   JasonTsang · Nov 8, 2018 · 4963 views
    This topic created in 2752 days ago, the information mentioned may be changed or developed.

    如题: c# 无法获取 VMware 虚拟机的硬盘 ID

    这个得怎么处理?

    public static string GetDiskID()
            {
                try
                {
                    String HDid = "";
                    ManagementClass mc = new ManagementClass("Win32_DiskDrive");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        HDid = (string)mo.Properties["SerialNumber"].Value;
                    }
                    moc = null;
                    mc = null;
    
                    //string[] arr = Regex.Split(HDid, " ", RegexOptions.IgnoreCase);
    
                    return HDid.ToString().Trim();
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
    
    
                }
    
            }
    
    7 replies    2018-11-08 19:49:09 +08:00
    yksoft1
        1
    yksoft1  
       Nov 8, 2018
    虚拟机的这个东西本身就不可靠,可以改的吧。。
    JasonTsang
        2
    JasonTsang  
    OP
       Nov 8, 2018
    @yksoft1 因为现在测试是在虚拟机上,程序就跑不起来 查了一下是因为硬盘无法获取到 ID。。。百度了一下 说因为虚拟机用的是 SCSI 接口。所以取不到,我是怕 软件发布后,还有人使用这种接口的硬盘。。

    真不是因为稳不稳定的原因。。而且虚拟机也是非常稳定的 不存在不稳定一说。
    yksoft1
        3
    yksoft1  
       Nov 8, 2018
    @JasonTsang 稳定肯定是稳定,但是虚拟机上不能用这个来唯一确定一个系统吧。
    另外实机也可能有一些特殊情况,比如网吧的无盘启动也可能取不到这个 ID 或者取到的没有唯一性
    WeaPoon
        4
    WeaPoon  
       Nov 8, 2018
    如果你的软件涉及到绑定电脑(机器码)之类的,你最好还是建议用户不要在虚拟机上注册购买使用,因为硬件参数是随时都可以修改的,到时候机器码变来变去的。
    至于硬盘 ID,应该有其他方法获取。
    JasonTsang
        5
    JasonTsang  
    OP
       Nov 8, 2018
    @WeaPoon 我想问 如果不在虚拟机上,现在实机的 还会有 SCSI 硬盘么?
    WeaPoon
        6
    WeaPoon  
       Nov 8, 2018
    @JasonTsang #5 百度下 ,有获取的方法。
    JasonTsang
        7
    JasonTsang  
    OP
       Nov 8, 2018
    @WeaPoon 这么写有问题 所以使用 CPUID 来作为唯一识别码了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2639 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 15:43 · PVG 23:43 · LAX 08:43 · JFK 11:43
    ♥ Do have faith in what you're doing.