Как получить удаленный сетевой принтер в C #? - PullRequest
0 голосов
/ 06 ноября 2019

Мой критерий - создать приложение, которое найдет все сетевые принтеры, которые установлены / удалены из системы. Вот мой код:

var connectionOpt= new ConnectionOptions();
connectionOpt.Impersonation = ImpersonationLevel.Impersonate;
connectionOpt.EnablePrivileges = true; 

string path = "\\\\localhost\\root\\cimv2";
ManagementScope managementScope = new ManagementScope(path, connectionOpt);
managementScope.Connect();

var printerQuery = new ManagementObjectSearcher("SELECT * from Win32_Printer");
foreach (var printer in printerQuery.Get())
{
    var name = printer.GetPropertyValue("Name");
    var status = printer.GetPropertyValue("Status");
    var isDefault = printer.GetPropertyValue("Default");
    var isNetworkPrinter = printer.GetPropertyValue("Network");
    Console.WriteLine("{0} (Status: {1}, Default: {2}, Network: {3}",
    name, status, isDefault, isNetworkPrinter);
 }


 Console.Read();

Но этот код выше дает мне только все установленные сетевые принтеры, а не те, которые доступны, но удалены из машины. Могу ли я узнать, как обновить этот код для достижения моей цели?

...