Сбой удаленного OpenSCManager с отказом в доступе

Я пытаюсь управлять службой на удаленной машине, используя следующий код:

// Error checking omitted for brevity
HANDLE hToken = NULL;
// user = username with no domain specification
// domain = targetmachine when targetting computer outside of domain
LogonUser(user, domain, password,
    LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, &hToken);

ImpersonateLoggedOnUser(hToken);

SC_HANDLE hSc = OpenSCManager(targetmachine,
                    SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS);

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

Однако, когда я пытаюсь настроить таргетинг на компьютер, который не принадлежит ни одному домену, OpenSCManager вызов не выполняется, если доступ запрещен, если я укажу что-либо SC_MANAGER_CONNECT как желаемый доступ. Ориентация на компьютер домена с компьютера, который находится за пределами домена, работает (используя комбинацию пользователя / домена / пароля для пользователя домена, который является локальным администратором на целевой машине). Ориентация на компьютер вне домена с компьютера вне домена не работает.

Пользователь / пароль предназначен для члена группы администраторов на целевом компьютере, поэтому не должно быть проблем с правами учетной записи.

Я проверил дескриптор безопасности scmanager, используя sc -sdshow scmanager и это идентично для компьютера домена и компьютера без домена. Оба работают под управлением Windows 7 64-bit.

Я также протестировал использование psexec, который имеет те же симптомы, то есть отлично работает между компьютерами домена, но не при настройке компьютера без домена.

Я также проверил отключение RPC через TCP на целевом компьютере и перезагрузил его, поскольку это описано как возможная причина ошибок доступа, но это, похоже, не помогает. Я также протестировал отключение брандмауэра Windows на целевой машине, но без изменений.

Есть ли какая-то настройка, которую нужно включить, чтобы работала удаленная настройка служб?

1 ответ

Решение

Похоже, что это было вызвано новыми функциями безопасности из Windows Vista и выше. По умолчанию Windows не предоставляет удаленно подключающимся пользователям полные права администратора, если это не делается в домене. Поэтому, чтобы это работало, необходимо отключить удаленные ограничения контроля учетных записей, но, конечно, это также снизит безопасность вашего компьютера.

Благодарим Ханса Пассанта за рекомендацию проверить похожие проблемы, размещенные на serverfault.com.

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