У меня есть довольно сложный набор инструменты, так не готовит в течение длительного поста до получения проблемы: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