410 / 261 / 25
Регистрация: 03.10.2011
Сообщений: 1,074
1

Автоматическая печать с сервера на сетевой принтера

15.04.2017, 06:29. Показов 714. Ответов 8
Метки нет (Все метки)

Здравствуйте.

OC - Windows Server 2012 R2. Написал Windows Service, который автоматически генерирует pdf-файл и отправляет его печататься на сетевой принтер. Для печати pdf использую установленный на сервере acrobat. Сервис запущен под Local System. После запуска сервиса обнаружил, что он работает только из активной сессии. Т.е. пока подключен к серверу - печать ведется, а если disconect или log off, то нет.

В-общем это мой подход для решения задачи. Есть предположение, что нужно пользоваться какими-то другими методами. Есть какие-то мысли?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2017, 06:29
Ответы с готовыми решениями:

Автоматическая печать
Здравствуйте форумчане! Задача довольно простая - автоматизировать то, что я делаю вручную:...

Печать на 2 принтера
Добрый день. Возможно пишу не в ту тему, вопрос собственно состоит в том что необходимо печатать...

Автоматическая печать текста
есть текст, с которым нужно сделать следующее... - на форме нажимается кнопка, которая запускает...

Медленная печать принтера
Описание: Есть 5 компьютеров, на одном из них стоит WIndows Server 2003 SP2, а на остальных...

8
Эксперт по компьютерным сетям
490 / 89 / 18
Регистрация: 01.12.2009
Сообщений: 369
Записей в блоге: 1
16.04.2017, 07:38 2
_katon_, я бы начал с того, что проверил, запущена ли служба без логина на сервер. Если да, добавил в службу запись в логи, чтобы отследить на каком шаге она не отрабатывает.
0
410 / 261 / 25
Регистрация: 03.10.2011
Сообщений: 1,074
16.04.2017, 08:50  [ТС] 3
Да. Это хорошая идея. Запись в лог всех значимых событий. Сейчас выходные, смогу сделать только в Пн.
P.S. Я тут вычитал, что у Local Systme нет доступа к сетевым принтерам http://www.verypdf.com/wordpre... -2310.html . Возможно дело в этом.
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
6483 / 3361 / 414
Регистрация: 13.03.2013
Сообщений: 12,797
Записей в блоге: 8
20.04.2017, 09:26 4
Цитата Сообщение от _katon_ Посмотреть сообщение
Сервис запущен под Local System
Быть может под "NT AUTHORITY\LocalService"?
Цитата Сообщение от _katon_ Посмотреть сообщение
Я тут вычитал, что у Local Systme нет доступа к сетевым принтерам
А что мешает запустить службу от имени "NT AUTHORITY\NetworkService"?
Если у Вас доменная сеть и сервер в домене, тогда еще проще: создаете доменного пользователя с админскими правами и архисложным паролем, и настраиваете запуск службы от имени этой учетки.
У меня так службы SQL и 1С работают.
0
410 / 261 / 25
Регистрация: 03.10.2011
Сообщений: 1,074
20.04.2017, 09:33  [ТС] 5
Что бы была понятна проблематика с печатью, вот небольшой пруф, что-бы было понятно что я ничего не придумываю: https://social.msdn.microsoft.... arpgeneral
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
6483 / 3361 / 414
Регистрация: 13.03.2013
Сообщений: 12,797
Записей в блоге: 8
20.04.2017, 12:06 6
Цитата Сообщение от _katon_ Посмотреть сообщение
Что бы была понятна проблематика с печатью, вот небольшой пруф, что-бы было понятно что я ничего не придумываю
Вас никто ни в чем не уличил.
Попробуйте настроить авторизацию службы от имени сетевой службы, или доменного админа (если имеется AD).
0
410 / 261 / 25
Регистрация: 03.10.2011
Сообщений: 1,074
20.04.2017, 12:46  [ТС] 7
Для печати pdf я исспользую Аскробат.

Проблема в том что из Windows Service нельзя запустить GUI (а он для Акробата запускается даже в сайленс режиме). Там по ссылке именной по этой прчине создается класс ProcessStarter. Он заменяет стандартный Process (позволяет из приложения запустить процесс) который начиная с windows выше XP не работает совсем. ProcessStarter делает тоже самое, что и Process но используя api win32.

Я уверен там что-то можно подправить, но использование ProcessStarter имеет один недостаток - если все сесии не активны, то ничего не работает. Я не тестировал под Network service и др., только под Local System и доменной учеткой с правами админа. Так вот для последнего не работает вовсе никак.

Все тесты курение гугла и прочее потянуло много времени. Человек которому я все это настраивал просто не верит в существоние проблемы печати из сервиса.

Сейчас решение такое. Экзешник сервиса переделан в приложение, которое все время висит в фоне под админской учеткой. Пока учетке не сделан log off все работает.

Ну а в планах (мечтах) переделать это так, чтобы под local system автоматическая печать работала без log on кого-либо из пользователей.

Добавлено через 13 секунд
Для печати pdf я исспользую Аскробат.

Проблема в том что из Windows Service нельзя запустить GUI (а он для Акробата запускается даже в сайленс режиме). Там по ссылке именной по этой прчине создается класс ProcessStarter. Он заменяет стандартный Process (позволяет из приложения запустить процесс) который начиная с windows выше XP не работает совсем. ProcessStarter делает тоже самое, что и Process но используя api win32.

Я уверен там что-то можно подправить, но использование ProcessStarter имеет один недостаток - если все сесии не активны, то ничего не работает. Я не тестировал под Network service и др., только под Local System и доменной учеткой с правами админа. Так вот для последнего не работает вовсе никак.

Все тесты курение гугла и прочее потянуло много времени. Человек которому я все это настраивал просто не верит в существоние проблемы печати из сервиса.

Сейчас решение такое. Экзешник сервиса переделан в приложение, которое все время висит в фоне под админской учеткой. Пока учетке не сделан log off все работает.

Ну а в планах (мечтах) переделать это так, чтобы под local system автоматическая печать работала без log on кого-либо из пользователей.
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
6483 / 3361 / 414
Регистрация: 13.03.2013
Сообщений: 12,797
Записей в блоге: 8
20.04.2017, 13:41 8
_katon_, я внимательно прочитал Ваш крайний пост и в упор не могу понять, почему Вы так вцепились в учетку "local system"? И неужели у Вас не найдется 20-30 минут времени, чтобы попробовать запустить необходимые службы от имени других учеток (какие именно, указаны выше)?
И Вы правильно заметили Учетная запись "local system" не может быть использована для доступа к сетевым ресурсам.
Второй момент, есть альтернатива "Акробату", например "PDF-XChange Editor".
1
410 / 261 / 25
Регистрация: 03.10.2011
Сообщений: 1,074
20.04.2017, 14:10  [ТС] 9
Уверен найду время! И когда протестирую отпишусь. Прямо сейчас это затруднительно - занят дургими задачами.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2017, 14:10

Некорректная печать принтера
Проблема примерно такая же. Только цвет синий, решение проблемы такое же?

Печать на 2 принтера в Windows XP.
Здравствуйте, необходимо осуществить печать одного файла одновременно на 2 принтера: 1й - реальный,...

Печать на два принтера
Уважаемые, можно ли сделать так чтобы (на машине установлены два принтера) один экземпляр отчета...

Печать с локального принтера
Добрый день. Была поставлена задача: Создать на сервере папку для файлов, отправленных с принтера...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru