2009-09-22 3 views
4

Я пытаюсь (под Windows 7) использовать команду runas для остановки, а затем перезапустить службу. (Win7 требует, чтобы admin privs сделал это, таким образом, использование runas.)Win7 runas command: Как захватить вывод команды, которая запущена?

Остановка службы работает нормально, но ее запуска нет. Вот команда, я использую для остановки службы:

runas /user:myDomain\myUserId "net stop serviceName" 

Вот команда для запуска службы:

runas /user:myDomain\myUserId "net start serviceName" 

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

Итак, мой вопрос: как я могу захватить stdout и/или stderr из команды net start при запуске через runas? Я пробовал использовать перенаправление, но просто получил пустой файл. Другим решением было бы открыть окно, открытое runas, чтобы подзадача оставалась открытой.

Заранее спасибо.

ответ

9

Запустите cmd.exe вместо этого командой для запуска и укажите, что вывод должен быть записан в файл.

RunAs/пользователь: MYDOMAIN \ myUserId "cmd.exe/с чистой остановки SERVICENAME> output.txt"

Вы можете использовать 2> для вывода ошибок из чистой остановки.

+0

Это не работает для меня. Я делаю «runas/user: username» cmd/c time> output.txt "". Если бы вы могли помочь мне понять, почему это не работает, это действительно сделает мне одолжение! – Feytality

4

Кроме того, если вы не хотите беспокоиться о выходном файле, вы можете использовать cmd.exe/k вместо/c для запуска команды, и он оставит окно сеанса открытым для вас. Возможно, вам будет проще и быстрее, если вы просто захотите быстро заглянуть.

+1

В следующий раз напишите этот ответ как комментарий, так как он связан с другим ответом. Поскольку порядок ответов может измениться позже, было бы сложно восстановить ваш ответ. – decden