WMI RegDword getvalue and setvalue

本文关键字:setvalue and getvalue RegDword WMI | 更新日期: 2023-09-27 18:17:59

我无法从USBSTOR注册表项中获得REG_DWORD数据,但我可以获得REG_SZ类型的'DisplayName'数据

ManagementScope myScope = new ManagementScope("''''" + strComputer + "''root''default");
ManagementPath mypath = new ManagementPath("StdRegProv");
ManagementClass mc = new ManagementClass(myScope, mypath, null);
ManagementBaseObject inParams = mc.GetMethodParameters("GetStringValue");
inParams["sSubKeyName"] = @"SYSTEM'CurrentControlSet'services'USBSTOR";
inParams["sValueName"] = "DisplayName";
ManagementBaseObject outParams = mc.InvokeMethod("GetStringValue", inParams, null);
Console.WriteLine(outParams["Type"].ToString());

WMI RegDword getvalue and setvalue

如果数据类型是REG_DWORD,应该使用GetDWORDValue方法,如果数据类型是REG_SZ,应该使用GetStringValue方法:

ManagementBaseObject inParams = mc.GetMethodParameters("GetDWORDValue");
inParams["sSubKeyName"] = @"SYSTEM'CurrentControlSet'services'USBSTOR";
inParams["sValueName"] = "Type";
ManagementBaseObject outParams = mc.InvokeMethod("GetDWORDValue", inParams, null);
UInt32 uValue = (UInt32)outParams["uValue"];
//...
ManagementBaseObject inParams = mc.GetMethodParameters("GetStringValue");
inParams["sSubKeyName"] = @"SYSTEM'CurrentControlSet'services'USBSTOR";
inParams["sValueName"] = "DisplayName";
ManagementBaseObject outParams = mc.InvokeMethod("GetStringValue", inParams, null);
string sValue = (string)outParams["sValue"];