Назад | Перейти на главную страницу

Выполнить команду Windows SC от имени другого пользователя

Я хотел бы выполнить команду SC против сетевой цели от имени другого пользователя. Мне также нужно указать имя пользователя и пароль в командной строке, так как это необходимо для сценариев. Однако я не вижу в SC параметров для выполнения команды от имени другого пользователя. Я вижу параметр «obj», который принимает имя пользователя, но, похоже, он предназначен для настройки учетной записи пользователя, под которой должна работать сама служба.

Если нет возможности изменить пользовательский контекст выполнения, есть ли другая команда, которая позволит мне создавать / запускать / останавливать службу Windows с использованием сценариев (вызов из TeamCity)

Использовать Инструмент командной строки "RunAs", он позволяет указать явный набор учетных данных и поддерживает форматирование «Домен \ Имя пользователя» и UPN, что позволяет вам пройти аутентификацию как другой пользователь и выполнить команду:

   Runas /user:Domain\user "sc \\remoteServer stop serviceKeyName"

Альтернатива:

Настроить запланированную задачу с определенной учетной записью входа

Завершено установка и использование PsExec - http://technet.microsoft.com/en-us/sysinternals/bb897553. Позволяет указывать имя пользователя / пароль в строке, поэтому можно использовать скрипты.

В PowerShell:

(get-wmiobject win32_service -comp servername -cred domain\user -filter "name='browser'").stopservice()

-cred также появится диалоговое окно учетных данных

Заменить servername, domain\user и name= с правильными ценностями

с участием -cred вы даже можете использовать сохраненные учетные данные.