Win32_DiskDrive上无效的WQL查询

| 我正在玩WMI。我正在尝试修改以下代码以修复错误,即该错误最初是由模型查询的。如果您有两个具有相同型号的驱动器,它将仅返回第一个磁盘的\\\\。\\ PHYSICALDEVICE。相反,我现在向用户显示一个\\\\ PHYSICALDEVICE:MODEL字符串。他们从下拉列表中选择此选项,我解析出物理设备并将其用于查询。 除了我不断收到MOS查询上返回的错误“无效查询”
 \"SELECT * FROM Win32_DiskDrive WHERE DeviceID = \'\" + device + \"\'\"
在我看来,查询看起来不错,但显然不是。帮助表示赞赏。 完整代码:
private void Form1_Load(object sender, EventArgs e)
    {
        //Select item from drop down menu
        ManagementObjectSearcher mosDisks = new ManagementObjectSearcher(
\"SELECT * FROM Win32_DiskDrive\");

        foreach (ManagementObject moDisk in mosDisks.Get())
        {
            string devid = moDisk[\"Model\"].ToString();
            string drvnum = moDisk[\"DeviceID\"].ToString();

            cmbHdd.Items.Add(drvnum + \": \" + devid);
        }
    }

    private void cmbHdd_SelectedIndexChanged(object sender, EventArgs e)
    {
        //update form with selected device
        int i = cmbHdd.SelectedItem.ToString().IndexOf(\':\');
        string device = cmbHdd.SelectedItem.ToString();//.Substring(0,i);
        ManagementObjectSearcher mosDisks = new ManagementObjectSearcher(
\"SELECT * FROM Win32_DiskDrive WHERE DeviceID = \'\" + device + \"\'\");
        foreach (ManagementObject moDisk in mosDisks.Get())
        {
            lblDeviceID.Text = \"DeviceID: \" + moDisk[\"DeviceID\"].ToString();
        }
    }
    
已邀请:
        WMI要求查询中的反斜杠(
\\
)必须加倍。 将变量2替换为变量5的变量4中的4之前,先将其替换为查询,看看是否有帮助。     

要回复问题请先登录注册