Как запустить SQL Server на удаленной машине, используя код из Delphi? - PullRequest
0 голосов
/ 21 мая 2010

Я разрабатываю приложение (Delphi 7, Windows XP), которое использует соединение с удаленным SQL Server. Иногда этот сервер не работает, и я хочу что-то сделать, чтобы запустить его. Я пытался запустить SQL Server в локальном контексте, и это было нормально, это работало ... Но дело в том, что я должен запустить его с удаленной машины.

Я могу видеть состояние SQL Server с удаленного сервера, но не могу его запустить ... Возможно, возникают проблемы из-за имени пользователя и пароля, но где указать логин для удаленного компьютера?

У вас есть идея сделать это ???

Прошу прощения за мой английский.

Спасибо.

Ответы [ 2 ]

1 голос
/ 21 мая 2010

1) Используйте sc.exe из командного файла. 2) Используйте API Service Control Manager через код.Вам может потребоваться изменить контекст безопасности процесса (т. Е. Вызвать ImpersonateLoggedOnUser), чтобы иметь возможность выполнять нужную операцию, используя правильные учетные данные пользователя.

0 голосов
/ 21 мая 2010

Используйте OpenSCManager , чтобы получить дескриптор диспетчера управления службами (на удаленной машине), затем используйте OpenService, чтобы получить дескриптор службы SQL Server, и, наконец, используйте StartService для его запуска.

Если вы хотите сделать это под другой учетной записью, вы можете использовать функцию WNetAddConnection (2) для соединения с учетными данными (например, \\ machine \ ipc $ или \\ machine \ admin $).

...