WMI funktioniert nach dem Upgrade auf Windows 10 nic

Ich habe den folgenden Code für eine Konsolenanwendung in Visual Studio unter Windows 8 verwendet, um die Beschreibung, die Einschalt- und die Geräte-ID der angeschlossenen seriellen Geräte zurückzugeben. Ich habe eine geänderte Version davon in einer Anwendung verwendet, die ich erstelle, um den COM-Port eines Arduino automatisch zu erkennen. Es gibt nichts mehr zurück, seit ich eine Neuinstallation mit Windows 10 durchgeführt habe. Ich habe einen USB-zu-Seriell-AVR-Programmierer, der jedoch immer noch mit diesem Code angezeigt wird. Ich habe die Registrierung überprüft und das Arduino ist in SERIALCOMM aufgeführt. Das Arduino wird im Geräte-Manager unter "Ports (COM & LPT)" als "USB Serial Port (COM6)" angezeigt. Ich kann das Arduino mit der Arduino-Software programmieren. Ich habe keine Ahnung, warum es nicht mehr funktioniert.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management;
using System.IO.Ports;
using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main() 
        {


            ManagementScope connectionScope = new ManagementScope();
            SelectQuery serialQuery = new SelectQuery("SELECT * FROM Win32_SerialPort");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(connectionScope, serialQuery);

            try
            {
                foreach (ManagementObject item in searcher.Get())
                {
                    string desc = item["Description"].ToString();
                    string deviceId = item["DeviceID"].ToString();

                    Console.WriteLine(desc);
                    Console.WriteLine(deviceId);
                }
            }
            catch (ManagementException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.ReadKey();
        }
    }
}

Es kann auch relevant sein, dass ich beim Versuch, eine Lösung zu finden, die folgende Implementierung zum Suchen von Portnamen mithilfe von MSSerial_PortName gefunden habe und den Fehler "Zugriff verweigert" erhalten habe.

using System;
using System.Management;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main() 
        {
            try
            {
                ManagementObjectSearcher MOSearcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSSerial_PortName");

                foreach (ManagementObject MOject in MOSearcher.Get())
                {
                    Console.WriteLine(MOject["PortName"]); 
                }
            }
            catch (ManagementException me)
            {
                Console.WriteLine("An error occurred while querying for WMI data: " + me.Message);
            }
            Console.ReadKey();
        }
    }
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage