我自己重新写了个方法测试通过了
   ManagementObject disk = null;
            DriveInfo[] s = DriveInfo.GetDrives();
            foreach (DriveInfo drive in s)
            {
                if (drive.DriveType == DriveType.Removable)
                {                    string driver = "win32_logicaldisk.deviceid=\"" + drive.Name.ToString().Replace(":\\", "") + ":\"";                      try
                    {
                        disk = new ManagementObject(driver);
                        this.listBox1.Items.Add(disk.GetPropertyValue("VolumeSerialNumber").ToString());
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    } 
                }
               
                           }