Для одного из моих клиентов я пишу службу Windows на C#. Он проверяет много вещей, но 1 вещь, которую он должен сделать, это проверить, существует ли принтер (IP-адрес). если да, подключите определенный принтер к ip-порту. Если нет, создайте порт и подключитесь в конце концов.Служба Windows с WMI
Я использую WMI для проверки существующих портов принтера и их создания. Я также использую WMI для подключения принтера к порту принтера.
В Windows 7 это работает как шарм. Но на моей (виртуальной) машине XP у службы вообще нет каких-либо прав WMI. Проверка порта завершается с ошибкой, и создание не выполняется. Дается просто «доступ запрещен» из ManagementException.
Если я создаю небольшую пробную программу (консольное приложение на C#), она работает как шарм.
Я попытался запустить службу под разными учетными записями (локальная система, администратор, мой личный логин с правами администратора), ничего не работает, и я получаю ощущение, что вы не можете использовать WMI в службе Windows в Windows XP.
Есть ли у вас какие-либо подсказки, как это исправить? Или что здесь не так?
Не знаю, где еще искать ответы, поэтому я сделал учетную запись здесь, надеясь найти правильный ответ с вами.
Да, я использую WIN32_Printer. Но он работает с консольным приложением на том же компьютере XP. – Aspage
Исправление: я использую WMI, который ссылается на папку/класс Win32_Printer в WMI. Я не использую Win32_Printer напрямую, чтобы все было сделано. – Aspage
Win32_Printer - класс WMI. Если вы не используете Win32_Printer, который использует класс WMI? –