У меня есть приложение, которое я написал, а затем преобразовал в службу Windows. Часть службы получает некоторые данные, генерирует отчеты и должна автоматически распечатывать отчет на указанном принтере. У меня эта часть работает, если я запускаю ее вручную (у меня есть консольная версия службы, которую я использую для разработки), она без проблем обнаруживает сетевые принтеры и отправляет файл для печати так, как мне нужно.
Когда я запускаю приложение в качестве службы Windows и запрашиваю список принтеров, оно возвращает все принтеры, которые не являются сетевыми принтерами (Microsoft Print в PDF, локальные принтеры, подключенные через USB и т.д.).
Я говорил с моим ИТ-администратором об этой проблеме, он сказал мне, что в идеале эта служба должна входить в систему с учетной записью LocalSystem. Я сделал это, но у меня до сих пор нет данных, возвращающих данные, которые указывают, что служба знает о сетевых принтерах.
Я пытаюсь найти здесь решение, чтобы клиенты могли установить мое программное обеспечение в будущем и беспрепятственно печатать без какой-либо необходимой конфигурации. Для меня и моей компании это в значительной степени неисследованная территория, поэтому я действительно не понимаю и не знаю каких-либо лучших практик здесь.
Какие шаги я могу предпринять, чтобы мой сервис узнал о сетевых принтерах, от которых ИТ-администратор не стал бы вонять? Я полагаю, что это как-то связано с пользователями, но у меня недостаточно знаний администратора Windows, чтобы разобраться в этом самостоятельно, и подобные вопросы, которые я видел, не помогли.