Главная Windows PsExec — утилита для удаленного доступа к командной строке
PsExec — утилита для удаленного доступа к командной строке
0

PsExec: обзор утилиты для удаленного выполнения команд

Зачастую в операционной системе приходится выполнять команды в cmd для выполнения определенных действий. Но как быть, если компьютер, на котором требуется выполнить набор действий, является удаленным? На такой случай существует довольно обширный набор утилит, одну из которых мы рассмотри в данной статье. PsExec - утилита, которая обеспечивает доступ к командной строке на удаленном компьютере Windows.

 

Скачать PsExec

 

Как пользоваться PsExec exe Windows 10

 

Сама утилита не требует установки в систему, необходимо всего лишь скопировать ее в ту же папку, где находятся исполняемые файлы (например, C:\Windows). Также должны работать службы «Сервер» и «Рабочая станция», и должен быть доступен общий ресурс Admin$. После этого запуск можно осуществить из cmd или powershell. Принцип выглядит так: перед тем, как начать исполнение команды утилита распаковывает службу, которая называется psexesvc в системную папку system32 в файл psexesvc.exe, который находится в скрытой папке Admin$ (C:\Windows) на целевой системе. Когда копирование и установка службы завершается, происходит установка связи между утилитой и установленной службой для ввода и выполнения команд и получения результатов. При завершении работы утилита останавливает и удаляет службу с целевой системы.

Общий синтаксис выглядит следующим образом:

psexec \\имя_компьютера, имя_компьютера2,... @файл -u пользователь -p пароль -n s -l -s -e -x -i сеанс -c -f -v -w каталог -d -<приоритет> -a n,n,... программа аргументы_программы

Давайте вкратце рассмотрим некоторые из ключей, которые могут использоваться утилитой psexec:

Имя_компьютера
Указывается имя компьютера, на котором необходимо выполнить команду.
@файл
Выполнение программы произойдет на компьютерах, имена которых указаны в текстовом файле.
-a
Указывает процессоры, на которых запускается выполнение программы, по умолчанию нумерация идет с 1.
-d
При указании этого ключа не будет производится ожидание завершения выполнения команды.
-e
Не будет производится загрузка определенного (указываемого) профиля.
-i
При указании этого ключа выполняемая программа получит доступ к рабочему столу на целевой системе (по умолчанию без указания ключа идет работа в консоли).
-l
С указанием этого ключа предоставляются права группы «Пользователи».
-n
Задает задержку подключения к целевой системе (в секундах).
-p
Ключ предназначен для указания пароля для пользователя.
-u
Ключ предназначен для указания пользователя на целевой системе.
-v
Позволяет копировать указанный файл на удаленную систему, если он новее существующего.
-приоритет
Задает приоритет для процесса. Варианты приоритетов указаны от низшего к высшему (реального времени): -low, -belownormal, -abovenormal, -high или -realtime.
программа
Необходимо указать имя программы, которую требуется запустить.
аргументы_программы
Аргументы для команды, которая будет запущена на удаленной системе.

Например, трассировка маршрута до узла www.microsoft.com на удаленном компьютере pc1 будет выглядеть следующим образом:

psexec \\pc1 tracert microsoft.com

Случай, когда необходимо выполнить одновременное выключение компьютеров pc1 и pc2:

psexec pc1, pc2 shutdown –f –r –t 0

Имена компьютеров могут также быть перечислены в списке в текстовом файле, например, pcs_list.txt. Тогда команда принимает вид:

psexec @c:\pcs_list.txt shutdown –f –r –t 0

Для того, чтобы вводить команды для работы PsExec в Windows 7 нужно добавить в реестр ключ reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v
LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f, иначе вы увидите ошибку «PsExec отказано в доступе: could not start».

Разумеется, что утилита принимает разный вид в зависимости от выполняемой задачи. В данной статье рассмотрены только самые простые случаи. В том случае, если требуется вызвать полную информацию обо всех ключах, то можно выполнить команду psexec.