Я создал приложение C# для переименования принтеров на сервере Citrix (Server 2008 R2).Переименование принтера с использованием C# и WMI
Причина этого в том, что каждый раз, когда пользователь регистрируется на принтере, он перенаправляется на сервер и получает уникальное имя (например, Microsoft XPS Document Writer (из WI_UFivcBY4-wgoYOdlQ) в сеансе 3) и из некоторых приложений Это проблема, поскольку принтер указывает на имя и тем самым вам нужно изменить настройки принтера при каждом входе в сеанс.
Сама программа работает как шарм, и принтер получает имена, которые я желаю. Однако проблема в том, что принтеры были переименованы в Windows, похоже, больше не могут их идентифицировать. Например, если я пытаюсь изменить принтер по умолчанию, я получаю сообщение об ошибке «Ошибка 0x00000709 Дважды проверьте имя принтера и убедитесь, что принтер подключен к сети».
var query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer where name like '%(%'");
ManagementObjectCollection result = query.Get();
foreach (ManagementObject printer in result)
{
string printerName = printer["name"].ToString();
if (printerName.IndexOf('(') > 0)
{
printer.InvokeMethod("RenamePrinter", new object[] { printerName.Substring(0, printerName.IndexOf('(')).Trim() + " " + userName }); //userName is provided as an inputparameter when running the application
}
}
Я ничего не теряю? Есть ли что-то еще, что мне нужно делать при переименовании? Я не могу найти информацию об этом случае вообще.
Здравствуйте Спасибо за ваш ответ. Я уже использовал эту страницу для справки. Я чувствовал, что это может быть хлопот. Однако я нашел некоторые интересные данные по этому вопросу с помощью citrix и принтеров по этой ссылке. Я мог бы быть прав, которые запутывают его [ссылка] (http://www.norskale.com/articles/article/programmatically-rename-xenapp-autocreated-client-printers) Снова спасибо за сообщение. Я продолжу поиск hte-решения и опубликую здесь, как соны, как я его найду! – user2371138
как указано [здесь] (http://www.scriptinternals.com/new/us/support/Internal/WMI_Win32_Printer.htm), код ** 5 **, а не код ** 1 **, для ** Доступ закрыт** –