using System.Management; class Drivers { public string? Path_Device_driver { get; set; } public string? Name_Device_driver { get; set; } public string? Status_Device_driver { get; set; } } class View_driver { static void Main(string[] args) { List drivers = new List(); string unknownName = "Unknown Device"; var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity"); foreach (ManagementObject obj in searcher.Get()) { var driver = new Drivers { Name_Device_driver = obj["Name"]?.ToString() ?? unknownName, Status_Device_driver = obj["Status"]?.ToString() ?? unknownName, Path_Device_driver = obj["ClassGuid"]?.ToString() ?? unknownName }; drivers.Add(driver); var statusColor = driver.Status_Device_driver switch { "OK" => ConsoleColor.Green, "Error" => ConsoleColor.DarkRed, "Degraded" => ConsoleColor.Yellow, _ => ConsoleColor.Gray }; var nameColor = driver.Name_Device_driver == unknownName ? ConsoleColor.Red : ConsoleColor.DarkGray; Console.Write("Name: "); Console.ForegroundColor = nameColor; Console.Write(driver.Name_Device_driver); Console.ResetColor(); Console.Write(" | Status: "); Console.ForegroundColor = statusColor; Console.Write(driver.Status_Device_driver); Console.ResetColor(); Console.Write(" | Path: "); Console.ForegroundColor = ConsoleColor.DarkYellow; Console.Write($"{driver.Path_Device_driver}\n"); Console.ResetColor(); Thread.Sleep(5); } } }