Лучший способ изменить имя локального принтера в C#
Мне нужно иметь возможность изменить имя локального принтера в c# , но используя другие учетные данные, чем вошедший в систему пользователь. Из всей информации, которую я могу найти, кажется, что WMI-это лучший маршрут, но.... вы не можете установить учетные данные имени пользователя и пароля для подключения к локальному компьютеру.
Что-то вроде этого
private void RenamePrinter(string oldName, string newName) { ConnectionOptions options = new ConnectionOptions(); options.Username = username; options.Password = password; options.EnablePrivileges = true; options.Authority = "ntlmdomain:DomainName"; ManagementScope scope = new ManagementScope(@"\\.\root\CIMV2", options); scope.Connect(); SelectQuery query = new SelectQuery("SELECT * FROM Win32_Printer"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); using (ManagementObjectCollection queryCollections = searcher.Get()) { foreach (ManagementObject printer in queryCollections) { if (printer["name"].ToString() == oldName) { { printer.InvokeMethod("RenamePrinter", new object[] { newName }); } return; } } } }
Что я уже пробовал:
Я также пытался олицетворять пользователя, но он не используется в разделе WMI, насколько я могу судить.
Patrice T
Почему вам нужно изменить название принтера ?