Запуск cmd.exe от имени SYSTEM

Иногда требуется запустить какой-либо процесс или скрипт от имени системной учетной записи. Сделать это можно из cmd.exe, а вот чтобы запустить cmd.exe под SYSTEM, можно воспользоваться вот таким не сложным батничком:

 

   1: sc create RunAsSystemSvc binpath= "cmd /K start" type= own type= interact
   2: sc start RunAsSystemSvc
   3: sc delete RunAsSystemSvc

Обратите внимание на пробелы в параметрах. Кроме этого, выполнение строки 2 выдаст ошибку, но это нормально.

Под Windows Server 2003 данный батник работает без проблем. А вот под Windows 7 есть нюансы. Во первых, его необходимо запускать с повышенными привелегиями (Run as administrator). Кроме этого, после запуска появится предложение переключить экран на просмотр собщения от окна:

image

Необходимо нажать View the message, и экран будет переключен на окно cmd, запущенного под учетной записью SYSTEM. После выполнения всех действий необходимо выйти из консоли cmd (команда exit), а затем нажать кнопку Return Now.

6 Responses to Запуск cmd.exe от имени SYSTEM

  1. Vasily says:

    "Ньюансы" возникают из за того что в современных ОС крайне не рекомендуется сервисам взаимодействовать с пользователями, в целях безопасности.Сервисы обычно работают с высокими привилегиями, а пользователь может быть залогинен разный… ;)Поэтому для запуска под системной учеткой, я бы рекомендовал использовать планировщик, с запуском задания при старте системы. Из командной строки им можно управлять с помощью schtasks.exe.

  2. Anton says:

    Шедулер не удобен, когда необходимо часто запускать какие-то процессы, н-р при отладке скриптов. Мне н-р вот это понадобилось для отладки скрипта в OpsMgr, тоже сначала подумал о шедулере, но это не так удобно.

  3. Vasily says:

    Если тебе надо именно запустить процесс из под системы, но разово — psexec -s

  4. Anton says:

    Мысль дельная :) Тока её качать надо… А это не всегда есть возможность сделать… Но всё равно спасибо..

  5. test says:

    Пытался осуществить сабж на висте(был под учёткой с административными привилегиями), но батник даже «от имени администратора» не запустился, павершел было качать неоткуда, в итоге зашёл в сустем32, и запустил cmd.exe «от имени администратора»
    Результат был имменно тот который нужен — запустилась командная строка от имени windows\system32 …

    • Николай says:

      «Результат был имменно тот который нужен – запустилась командная строка от имени windows\system32» — ошибка. Процесс запустился от твоей УЗ, а не от системы. Наличие в строке windows\system32 говорит лишь о директории в который ты находишься, с которой работаешь по умолчанию.

Ответить на Anton Отменить ответ