Вот такой код имеется (см. ниже).
У всех работает нормально, у одного клиента вызывает исключение
An unhandled exception of type 'System.Management.ManagementException' occurred in System.Management.dll Additional information: Invalid namespace
Единственное отличие, что он на Windows 11 перешёл. Служба WMI на машине работает. Пытался гуглить, но никаких толковых статей на тему того, что ломается в WMI в Windows 11 не нашёл. Более того, не уверен, что вообще дело в версии винды. Есть у кого-нибудь какие-либо идеи?
public static Dictionary<string, ManagementBaseObject> EnumerateComPorts()
{
Dictionary<string, ManagementBaseObject> result = new Dictionary<string, ManagementBaseObject>();
string[] ports = SerialPort.GetPortNames();
try
{
foreach (string port in ports)
{
using (var entitySearcher = new ManagementObjectSearcher(
"root\\CIMV2", $"SELECT * FROM Win32_PnPEntity WHERE Caption LIKE '%{port}%'"))
{
var matchingEntity = entitySearcher.Get().Cast<ManagementBaseObject>().FirstOrDefault();
if (null != matchingEntity)
{
result.Add(port, matchingEntity);
}
} // using
} // foreach
return result;
}
catch(Exception ex)
{
Logger.LogError(ex);
}
return result;
} // EnumerateComPorts