Windows 7 Professional, 32-битная
У нас есть специализированный принтер для решения конкретных производственных задач. У этого драйвера принтера есть странная проблема, когда некоторые параметры в настройках принтера отключены (например, кнопка отключена, неактивна), когда пользователь с ограниченными правами (группа «Пользователи») входит в систему, когда пользователь, который является членом группы администраторов входит в систему, параметры включены. Я связался с производителем принтера, но мне не удалось с ним сотрудничать.
Я установил Process Explorer, чтобы искать какие-либо дескрипторы, которые могут дать мне представление о том, для каких файлов драйверу могут потребоваться повышенные разрешения, однако я не увидел никаких подсказок.
Мой вопрос: как еще я могу определить, какие разрешения требуются драйверу?
Ответ (для моего случая) был на удивление простым и логичным: предоставить Управление принтерами разрешение пользователю или группе.
Я видел, как эта проблема проявляется по-разному. Это почти всегда относится либо к старым драйверам принтера, либо к специализированным драйверам, которые не полностью поддерживают UAC.
Пара общих вещей, которые нужно проверить:
printui.dll
утилита в сценарии входа в систему? В этой ситуации старые драйверы иногда не работают должным образом из-за UAC. Попробуйте установить принтер для каждого пользователя, чтобы проверить эту теорию.Я установил Process Explorer, чтобы искать какие-либо дескрипторы, которые могут дать мне представление о том, для каких файлов драйверу могут потребоваться повышенные разрешения, однако я не увидел никаких подсказок.
Вы на правильном пути, вы просто используете неправильный инструмент. Обозреватель процессов покажет вам, какие процессы открыты для каждого процесса, что отлично подходит для устранения таких проблем, как проблемы с версиями DLL, но вам нужна более глубокая магия. ProcMon. Самое замечательное в ProcMon - это то, что он записывает практически все, что происходит на вашем компьютере под управлением Windows, ужасная вещь в ProcMon заключается в том, что он записывает практически все, что происходит на вашем компьютере. Мы говорим о десятках миллионов событий.
Начните с фильтрации событий, генерируемых диспетчером очереди печати (spoolsv.exe
), когда вы вошли в систему как пользователь в группе администраторов. Перейдите в раздел настроек принтера. Подождите, пока количество записываемых событий замедлится, исключите все предыдущие события, а затем начните переключать параметры, которые отключены для ваших непривилегированных пользователей. Тогда немедленно прекратите регистрацию. Мы надеемся, что это должно ограничить количество событий, которые вам нужно просмотреть, до приемлемого количества. Настройки вашего принтера, скорее всего, просто ключи реестра, так что начните с них. Если вы можете найти конкретный ключ реестра, отфильтруйте свои события только для него, а затем снова проверьте настройки, чтобы убедиться, что вы его нашли. Затем просто предоставьте группе BUILTIN \ Users разрешение на ключ или ключи реестра.
К сожалению, это легче сказать, чем сделать. Если у вас нет достаточно глубокого понимания Windows, это часто бывает методом проб и ошибок.