Skip to content

PsExec

ВВедение
Программа PsExec — это облегченный вариант Telnet. Она позволяет выполнять процессы в удаленных системах, используя для этого все возможности интерактивного интерфейса консольных приложений, и при этом нет необходимости вручную устанавливать клиентское программное обеспечение. Основное достоинство PsExec — это возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах и удаленно запускать программы (в фоновом режиме так и в интерактивном) выполнять какие либо команды.

Установка
Просто скопируйте программу PsExec в папку для исполняемых файлов (system32) либо перейдите в текущую папку с программой и запускайте от туда. При вводе команды psexec на экран выводится справка о синтаксисе команды.
Программа PsExec работает в операционных системах Windows Vista, NT 4.0, Win2000, Windows XP и Server 2003, в том числе в 64-разрядных версиях ОС

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

компьютер
Указывает программе PsExec, что нужно запустить приложение на заданном компьютере или компьютерах. Если имя компьютера не указано, то программа PsExec запустит приложение в локальной системе, если же вместо имени компьютера задан символ «звездочка» (\\*), то программа PsExec запустит приложение на всех компьютерах текущего домена.
@файл Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.
-a Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»
-c Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.
-d Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.
-e Указанный профиль учетной записи не загружается.
-f Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.
-i Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.
-l При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.
-n Позволяет задать задержку подключения к удаленным компьютерам (в секундах).
-p Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
-s Удаленный процесс запускается из системной учетной записи.
-u Позволяет указать необязательное имя пользователя для входа в удаленную систему.
-v Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.
-w Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).
-x Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе)
-приоритет (приоритет) Позволяет задавать для процесса различные приоритеты:
-low (низкий), -belownormal (ниже среднего), -abovenormal (выше среднего), -high (высокий) или -realtime (реального времени).
программа Имя запускаемой программы.
аргументы Передаваемые аргументы (обратите внимание, что пути файлов должны указываться как локальные пути в целевой системе).

Чтобы задать имя приложения, которое содержит пробелы, используйте кавычки, например psexec \\ip «c:\длинное имя\test.exe». Введенные данные передаются в удаленную систему при нажатии клавиши «Ввод», для завершения удаленного процесса нужно нажать сочетание клавиш Ctrl-C.

Если имя пользователя не задано, то удаленный процесс запускается из той же учетной записи, что и программа PsExec. Однако поскольку удаленный процесс является олицетворением, то он не будет иметь доступа к сетевым ресурсам удаленной системы. Если имя пользователя задано, то удаленный процесс запускается из указанной учетной записи и получает доступ к тем же сетевым ресурсам удаленной системы, что и данная учетная запись. Учтите, что пароль передается в удаленную систему в виде открытого текста.

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

Примеры
psexec \\ip cmd
Вызывает интерактивный интерфейс командной строки в удалённой системе \\ip:

psexec \\ip ipconfig /all
Запускает в удаленной системе программу IpConfig с параметром /all и выводит полученные данные на экран локальной системы:

psexec \\ip -c test.exe
PsExec с ключом -c копирует программу (test.exe) на удаленную машину далее выполняет её в интерактивном режиме и удаляет её с удаленной системы после завершения работы.

psexec \\ip c:\bin\test.exe
Если не указан путь к программе, которую надлежит выполнить, то PsExec обращается в каталог \windows\system32 на удаленной системе. Если известно, что программа находится не в этом каталоге, следует ввести полный путь на удаленной машине.

psexec -i -d -s c:\windows\regedit.exe
Запускает в интерактивном режиме из системной учетной записи программу Regedit для просмотра данных разделов реестра SAM и SECURITY:

psexec -l -d «c:\program files\internet explorer\iexplore.exe»
Используется для вызова программы Internet Explorer от имени пользователя с ограниченными правами:

psexec \\ip -u login -p pass cmd
Запуск cmd от определённого пользователя.

psexec \\ip -u Mydomain\MyUsername -p mypass net view 
Посмотрим сетевое окружение с удалённого пк, доменный вариант

psexec \\PC1 -u Mydomain\MyUsername -p mypass net use X: \\PK2\C$ 
Подключить скрытый ресурс диск «C$» удаленного компьютера PK2 к удаленному компьютеру PC1

psexec \\ip -u login -p pass -c mycmd.cmd 
Выполнение командного файл (.bat или .cmd), нужно сначала скопировать его на удаленный компьютер, используем ключ -c. Если в командном файле используются сетевые диски или команды, требующие доступ к сети (например, NET.EXE ), то нужно задать имя пользователя.

psexec \\ip -u login -p pass -i notepad.exe 
Пример ключа -i иногда необходимо запустить приложение на удаленном компьютере, видимое для его пользователя.

psexec \\* -s install.exe 
Запуск приложений на всех компьютерах домена (вместо имени компьютера задать — \\*) с правами администратора или под локальной системной учетной записью (ключ -s).

psexec.exe -a 1 -i -w «папка приложения» «приложение» 
Psexec можно использовать для обхода ошибки типа «Negative delta time», возникающей на многоядерных системах из-за несовпадения счетчиков RTSC (Real Time Stamp Counter) у разных ядер. Для чего приложение запускается с помощью psexec только для одного ядра (ключ -a):

psexec \\remote cmd /c ver
Если на удаленной системе нужно выполнить одну консольную команду, следует использовать ключ /c, указав вслед за ним выполняемую команду.

Наверно всё на этом оставим программу Psexec переходим к остальным программам.

Published inCMDWindows
Яндекс.Метрика