Dcpromo работает как локальная система в Server 2008

Я пытаюсь, чтобы служба, работающая на Windows Server 2008 R2, могла выполнить dcpromo, чтобы присоединиться и удалить AD. В Server 2003 я смог просто использовать Process.Start() в C# и указать путь к dcpromo и путь к файлу ответов, предоставленный пользователем.

Однако в Server 2008 это возвращает исключение FileNotFoundException. Я проверил путь к dcpromo и даже попытался запустить другие исполняемые файлы в папке System32, такие как ipconfig и whoami, которые выполняются просто отлично.

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

В соответствии с разрешениями для dcpromo.exe учетная запись SYSTEM имеет разрешения на чтение / выполнение, и я попытался предоставить полные разрешения и изменил владельца на SYSTEM, но ничего из этого не помогло. Тот же код работает, если пользователь запускает его как обычное приложение (т. Е. Не сервис).

Любая идея, как предоставить разрешения учетной записи SYSTEM для выполнения dcpromo при работе в службе в Server 2008 R2?

2 ответа

Решение

У меня возникла эта проблема, и я понял, что DCPromo - это 64-разрядный процесс, и вы, вероятно, настроили Visual Studio для создания приложений x32. Ну, я изменил VS для компиляции в 64-битной системе, и это сработало как чемпион!

Carlos

Можете ли вы изменить службу для запуска в качестве пользователя вместо системной учетной записи?

Другие вопросы по тегам