Утилиты start и runas — запуск программ из командной строки

Утилиты start и runas — запуск программ из командной строки Командная строка

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

Та же ситуация и с интернетом, если серфить под админом по всемирной сетке, то как ни как, да найдется злобный вирь, который проникнет в систему и захочет запустить программу из командной строки для подальших пакостей, ну и для контроля пропишется в реестре. Другое дело – ограниченная учетная запись – под ней уже много чего не сделать. Но даже в таком случае приходится делать исключения – допустим, надо запустить программу через командную строку не под своей учетной записью, а под другой (с большими правами) или, же просто произвести запуск программ с дополнительными параметрами. Для этих целее будет рассмотрено две утилиты командной строки – RUNAS (запуск программы через командную строку под другой учетной записью без завершения сеанса) и START (запуск программы из командной строки с дополнительными параметрами). Помним, что для выполнения аналогичных действий сервер сценариев Windows Script Host предоставляет в распоряжение методы Run и Exec.

Утилита START – командная строка

Данная утилита предоставляет ряд дополнительных параметров:

  • запуск программ в определенном режиме;
  • открывать окно просмотра для заданного каталога (папки);
  • открывать документы, тип которых зарегистрирован в Windows (т. е. указано, какое приложение должно открывать документ с заданным расширением).

И так, давайте познакомимся с основным синтаксисом данной утилиты:

START ["заголовок"] [/Dпуть] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [/B] [команда/программа] [параметры]

При условии, что команда/программа определяет внутреннюю команду командной строки (DIR, COPY…) или пакетный файл, то для их запуска в новом окне (при условии, что не указан ключ ) автоматически производится запуск программы CMD.EXE из командной строки с ключом /K. При таком условии новое окно не будет закрыто после выполнения команды. При условии, что выполняется не внутренняя утилита CMD и не пакетный файл, то эта программа запускается в графическом или текстовом окне.

При условии, что первым элементом командной оболочки будет слово CMD без расширения и пути к файлу, то обработчик команд заменит его на значение переменной COMSPEC (полный путь к командному интерпретатору). Если же первым элементом является имя выполняемой программы без расширения, то будет использовано значение переменной среды РАТНЕХТ, это даст возможность определить расширения имен исполняемых Файлов и порядок поиска нужного файла. Как правило, переменная РАТНЕХТ содержит следующие значения:

РАТНЕХТ=.СОМ;.ЕХЕ;.ВАТ;.CMD

При условии, что не будет найдено ни одного файла с заданными по дефолту расширениями, то интерпретатор команд проверит, не соответствует ли данное имя имени каталога. Если это так, то утилита START произведет запуск проводника и откроет в нем заданный каталог.

"заголовок" – определяет заголовок создаваемого окна. Например:

START "Копирование данных" copier.bat

/путь – данный параметр указывает рабочий каталог при открытии нового командного окна.

/I – данный ключ говорит, что новой операционной средой станет исходная среда, переданная командным интерпретатором cmd.exe, а не текущая среда командного окна.

/MIN – данный параметр говорит, что запуск команды/программы через командную строку происходит в свернутом виде, если же используется /МАХ — то в развернутом (максимизированном) окне.

/SEPARATE – выполнение 16 разрядного приложения в отдельной области памяти

/SHARED — выполнение 16 разрядного приложения в общей области памяти

Ключи /LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL задают приоритет запускаемой задачи.

/WAIT – запустить программу из командной строки с ожиданием ее окончания

— выполнение происходит без создания нового окна (конечно, если это возможно). Таким образом, если с этим ключом запускается внутренняя команда cmd.exe или пакетный файл, то новая копия командного интерпретатора будет запущена в текущем командном окне.

Примеры применения утилиты START:

Нужно запустить из окна командной строки в качестве основного процесса Microsoft Word с автоматическим открытием двух заданных файлов (имя одного из файлов содержит пробел, поэтому оно взято в кавычки):

START /MAX winword.exe "Мой документ.doc" docum.doc

Открытие окна просмотра для каталога мои документы на текущем диске:

START "Мои документы"

Открытие окна просмотра для текущего каталога:

START .

Открытие файла Мой любимый документ.doc из папки Мои документы в стандартном окне:

START "С:Мои документыМой любимый документ.doc"

Утилита RUNAS командная строка

Утилита RUNAS командной строки не содержит сложного синтаксиса, и довольно проста в своем применении. Она позволяет запустить программу через командную строку от имени другого пользователя без завершения текущего сеанса работы. Как правило, ее используют администраторы для выполнения мелких системных команд. Например:

runas /user:Admin@data.com regedit.com

или

runas /user:dataAdmin regedit.exe

Естественно, что если надо выполнить приложение под другим пользователем, у которого больше полномочий и есть пароль, то понятное дело надо знать пароль, без этого никак:

runas /user:Administrator@microsoft.com regedit.exe
Enter password for Administrator@windata.com:
Attempting to start “regedit.exe” as user
"Administrator@windata.com"…

Команда в окне командной строки Runas /? предоставляет подробную справку по дополнительным параметрам этой утилиты.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий