У меня есть ситуация здесь, я надеюсь, вы можете помочь мне. У меня есть база данных, работающая на Windows Server 2012 R2 с определенной учетной записью пользователя. Та же учетная запись пользователя работает под управлением службы Windows. Эта служба выполняет некоторую работу и обновляет базу данных. Пока это работает довольно хорошо.

Теперь этот Сервис должен запускать внешний процесс в какой-то момент. И я делаю это с ProcessStartInfo и Process.Start Что дает следующее исключение:

Система.ComponentModel.Win32Exception (0x80004005): доступ запрещен в системе.Диагностика.Процесс.StartWithShellExecuteEx (ProcessStartInfo startInfo) в системе.Диагностика.Процесс.Начать () в системе.Диагностика.Процесс.Start (ProcessStartInfo startInfo)

Согласно этому ответу stackoverflow, я должен добавить этого пользователя (пользователя Active Directory) на сервер. Как и сейчас, пользователь не имеет доступа к серверу.

И я на самом деле хочу сохранить это таким образом и предоставить пользователю только доступ к процессам (программам) без доступа к серверу.

Это возможно или я на неверном пути?

Панель управления >> Учетные записи пользователей >> Управление учетными записями пользователей >> Вероятно, сработает Add ..., но я не знаю, какой уровень доступа мне выбрать в списке уровней доступа.

1 ответ1

0

Хорошо, я думаю, что исключение немного вводит в заблуждение. Казалось, что пользователю не разрешили запустить приложение, но реальная проблема заключалась в том, что у пользователя не было никакого доступа к Справочнику, в котором находилось приложение.

  • Изменение настроек безопасности папки, чтобы предоставить пользователю права на Read & Execute , решит эту проблему.

Таким образом, нет необходимости добавлять пользователя на сервер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .