У меня довольно сложный набор инструментов, поэтому готовьтесь к длительной публикации, пока не дойдете до проблемы:
Мне удалось получить PDFCreator и виртуальный принтер для создания PDF под Windows 7, работающий в режиме сервера в качестве службы.Следующим шагом в этом процессе является PDFCreator, вызывающий VBScript после создания PDF.Скрипт загружает PDF на наш сервер через WebService и опрашивает сервер на предмет полученного PDF.Когда полученный PDF был загружен, VBScript необходимо распечатать его на защищенном принтере.
Теперь для печати я использовал встроенный COM-объект PDFCreator, который предоставляет доступ к GhostScript.Это отлично работало под Windows XP для любой учетной записи, служба PDFCreator была запущена.Например, как пользователь домена, чтобы иметь доступ к общим принтерам из VBScript, поскольку пользовательский контекст такой же, как у службы PDFCreator.
Теперь я попробовал то же самое для Windows 7 и использовал учетную запись «локальной системы»как и раньше, потому что мой тестовый принтер является локальным (и работает, т.е. TestPage).В результате wscript остается в диспетчере задач и никогда не завершается.Затем я активировал интерактивный режим для сервиса и увидел Ghostscript с просьбой о принтере для печати.Принтер действительно существует, как я проверял перед вызовом GS в VBScript, но по какой-то причине GhostScript не видит принтер, хотя в открывшемся диалоговом окне выбора принтера он есть.
После нескольких дней поискаи безуспешно пробуя даже выделенную новую учетную запись администратора для сервера, но безуспешно, я наконец нашел способ заставить его работать.Изменение пользователя для службы PDFCreator на «службу локали» Сначала я получил сообщение об ошибке при создании COM-объекта PDFCreator.Хорошо, я подумал, что это имеет смысл, так как «служба локали» имеет меньше прав, чем «система локали».Я обошел этот предел, изменив права доступа в comexp.msc и предоставив права «службы локали» для локального и удаленного доступа к COM и Script.Вуаля, все работало.
Чего я не понимаю: почему Ghostscript под учетной записью «службы локали» способен найти принтер, хотя эта учетная запись обладает меньшими правами, чем «система локали»?
И: Какое право доступа мне нужно установить для «языковой системы» или любой другой учетной записи пользователя, чтобы она работала?
Или: существует ли полный список подробных различий между этими учетными записями?
Большое спасибо и привет, GHad