V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JasonTsang
V2EX  ›  C#

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

  •  
  •   JasonTsang · 2018-11-08 13:46:43 +08:00 · 4400 次点击
    这是一个创建于 2214 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题: 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 条回复    2018-11-08 19:49:09 +08:00
    yksoft1
        1
    yksoft1  
       2018-11-08 13:49:38 +08:00
    虚拟机的这个东西本身就不可靠,可以改的吧。。
    JasonTsang
        2
    JasonTsang  
    OP
       2018-11-08 13:55:38 +08:00
    @yksoft1 因为现在测试是在虚拟机上,程序就跑不起来 查了一下是因为硬盘无法获取到 ID。。。百度了一下 说因为虚拟机用的是 SCSI 接口。所以取不到,我是怕 软件发布后,还有人使用这种接口的硬盘。。

    真不是因为稳不稳定的原因。。而且虚拟机也是非常稳定的 不存在不稳定一说。
    yksoft1
        3
    yksoft1  
       2018-11-08 13:57:17 +08:00
    @JasonTsang 稳定肯定是稳定,但是虚拟机上不能用这个来唯一确定一个系统吧。
    另外实机也可能有一些特殊情况,比如网吧的无盘启动也可能取不到这个 ID 或者取到的没有唯一性
    WeaPoon
        4
    WeaPoon  
       2018-11-08 14:29:55 +08:00
    如果你的软件涉及到绑定电脑(机器码)之类的,你最好还是建议用户不要在虚拟机上注册购买使用,因为硬件参数是随时都可以修改的,到时候机器码变来变去的。
    至于硬盘 ID,应该有其他方法获取。
    JasonTsang
        5
    JasonTsang  
    OP
       2018-11-08 14:58:08 +08:00
    @WeaPoon 我想问 如果不在虚拟机上,现在实机的 还会有 SCSI 硬盘么?
    WeaPoon
        6
    WeaPoon  
       2018-11-08 15:13:10 +08:00
    @JasonTsang #5 百度下 ,有获取的方法。
    JasonTsang
        7
    JasonTsang  
    OP
       2018-11-08 19:49:09 +08:00
    @WeaPoon 这么写有问题 所以使用 CPUID 来作为唯一识别码了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2035 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 00:02 · PVG 08:02 · LAX 16:02 · JFK 19:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.