2010-07-21 2 views
4

У меня есть довольно сложный набор инструменты, так не готовит в течение длительного поста до получения проблемы:Windows 7 различие обслуживания между локальной системой и локальной службой

мне удалось получить 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 и скрипту. Войла, все сработало.

Что я не понимаю: почему Ghostscript под учетной записью «locale service» способен найти принтер, хотя у учетной записи меньше прав, чем «система локали»?

И: Какое право доступа мне нужно установить для «языковой системы» или любой другой учетной записи пользователя, чтобы заставить ее работать?

Или: Есть ли исчерпывающий список подробных различий между этими учетными записями?

Большое спасибо и Greetz, GHAD

ответ

3

Ответ можно найти здесь: KB184291

Это о ASP/IIS работает под «локальной системы» счета и не может печатать, так как принтеры не доступны под пользователем .DEFAULT. Копирование записей в реестре помогает.

Greetz, GHad