PsExec — это удобная утилита командной строки, с помощью нее можно запускать программы на удаленных Windows системах, перенаправляя данные, которые выводится приложением на экран на локальный ПК. Т.е. при работе с этой утилитой складывается ощущение, что приложение работает локально на вашем ПК. PsExec – бесплатная утилита и ее можно скачать по адресу https://download.sysinternals.com/files/PSTools.zip .
Какие требования к окружению при работе с утилитой PsExec? Для удаленного запуска команд и процессов необходимо, чтобы на удаленном и локальном ПК функционировали службы «Сервер» и «Рабочая станция» (Workstation и Server), а на удаленном компьютере должен быть доступен стандартный общий ресурс Admin$.
Удобство PsExec в том, что ее легко развернуть в сети благодаря возможности удаленной установки, без необходимости устанавливать или настраивать что-либо на каждом. На удаленном ПК PsExec работает в виде службы Windows с таким же именем.
PsExec очень удобна при выполнении множества задач по обслуживанию и администрированию удаленных рабочих станций и серверов. Устанавливать ее не нужно, можно просто скопировать ее в каталог, определенный в переменной % path % (например, C:WindowsSystem32). При запуске команд через PsExec на удаленном ПК запустится служба PsExec (исполняемый файл system32psexesvc.exe), соответственно для нормальной работы вам понадобятся права администратора домена на удаленной машине. Формат запуска и параметры командной строки у утилиты PsExec следующие :
Usage: psexec [computer[,computer2[,…] | @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,… ] cmd [arguments]
В том случае, если имя пользователя и пароль не указаны, используются права текущего пользователя:
psexec buh_pc1 cmd.exe
psexec buh_pc1 -u admin -p P@ssw0rd notepad.exe
В принципе эту утилиту можно рассматривать как альтернативу telnet. Внимание : при использовании PsExec будьте осторожны, так как в принципе соединение между сервером и клиентом PsExec не шифруется и данные можно перехватить сетевым сниффером.
Если вам понадобится запустить определенную команду на нескольких компьютерах одновременно (например, shutdown –f –r –t 0 ☺), то их имена или ip-адреса нужно перечислить через запятую, или же поместить в текстовый файл, который выбрать в качестве одного их параметров утилиты PsExec..
psexec buh_pc1, buh_pc2 shutdown –f –r –t 0
psexec @c:list_of_buh_pc.txt shutdown –f –r –t 0
При использовании ключа “-c” указанная программа сначала скопируется с вашего ПК на удаленный, а потом выполнится. Ключ “-i” заставляет указанную команду запустится в интерактивном режиме. Если вы хотите, чтобы после запуска определенной команды PsExec не ждал ее окончания, а вывернул вам управление (командную строку), нужно указать параметр “-d”:
psexec -d buh_pc1 chkdsk
Эта команда запустит на удаленной системе процесс проверки диска , а администратор сможет продолжить введение команд.