PsExec: что это такое и как его использовать

PsExec — это портативный инструмент от Microsoft, который позволяет удаленно запускать процессы с использованием учетных данных любого пользователя. Это немного похоже на программу удаленного доступа, но вместо того, чтобы управлять удаленным компьютером с помощью мыши, команды отправляются на компьютер через командную строку.

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

Для работы PsExec на удаленном компьютере не требуется никакого программного обеспечения, но следует помнить о нескольких вещах, если инструмент не запускается правильно с первой попытки.

Как настроить PsExec

Если PsExec является переносимым и его не нужно копировать на удаленный компьютер, какой тип настройки ему действительно нужен?

Инструмент работает только при определенных условиях. А именно, когда общий доступ к файлам и принтерам включен как на локальном, так и на удаленном компьютере, и когда на удаленном компьютере правильно установлен общий ресурс $ admin для предоставления доступа к папке \ Windows \.

Вы можете дважды проверить, что общий доступ к файлам и принтерам включен, заглянув в настройки брандмауэра Windows:


  1. Войти firewall.cpl в диалоговом окне «Выполнить». Один из способов открыть Run — через WIN + R, Сочетание клавиш.


  2. Выбрать Разрешить приложение или функцию через брандмауэр Windows с левой стороны окна.

    Настройки брандмауэра Windows 10

    Это может читаться как Разрешить приложение или функцию через брандмауэр Защитника Windows в зависимости от того, как настроен ваш компьютер, но это один и тот же вариант.


  3. Убедись Общий доступ к файлам и принтерам имеет галочку в Частный коробка справа Если это не так, поставьте флажок в этом поле и выберите Хорошо.

    Общий доступ к файлам и принтерам Брандмауэр Windows в Windows 10

    Если вы не можете изменить настройки брандмауэра, потому что они неактивны, нажмите Изменить настройки в верхней части окна.


  4. Теперь вы можете выйти из любых открытых настроек брандмауэра Windows.


Теперь, когда брандмауэр Windows правильно настроен для PsExec, у вас не должно возникнуть проблем с доступом к общему ресурсу $ admin на удаленном компьютере, если выполняются следующие условия:

  • Оба компьютера принадлежат одной рабочей группе
  • Вы знаете пароль к учетной записи администратора на удаленном компьютере

Посмотрите это руководство на Wintips.org, если вам нужна помощь в выполнении этих задач или если вы сделали их правильно, но позже, после попытки использовать PsExec, как описано ниже, вы получите ошибку «отказано в доступе».

Как использовать PsExec

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


  1. Загрузите PsExec на компьютер, на котором будут выполняться удаленные команды. PsExec доступен бесплатно от Microsoft на Sysinternals как часть PsTools.


  2. Извлеките файлы из загрузки PsTools.zip. Вы можете сделать это, щелкнув правой кнопкой мыши по ZIP-файлу и выбрав Извлечь все. Любая сторонняя программа извлечения файлов тоже будет работать.

    Извлечь PSTools ZIP файл


  3. Откройте папку, в которой находятся извлеченные файлы, и с панели навигации вверху папки сотрите то, что там есть, и введите CMD.

    Открытие командной строки из папки PSTools

    Другой способ сделать это, по крайней мере, в некоторых версиях Windows, это Shift + правый клик пустое место в папке PsTools и выберите Откройте командное окно здесь.


  4. Откроется командная строка в этой папке, чтобы вы могли запускать команды через PsExec.

    Папка PSTools открывается в командной строке для Windows 10


  5. С помощью командной строки теперь откройте папку, содержащую PsExec.exe, вы можете начать вводить команды на удаленном компьютере.


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

Вот как должны вводиться команды PsExec:

PsExec [\\компьютер [,компьютер2 [, …] | @файл\]] [-U имя пользователя [-п пароль][-н с] [наименование услуги][-час] [-L] [-s|] [-Икс] [ [Сессия]] [ исполняемый [|-v]] [-вес Каталог] [-d] [] [-Анна,…] cmd [аргументы]

Это может выглядеть сложно и запутанно, но не волнуйтесь! Внизу этой страницы есть несколько примеров, которые вы можете использовать на практике.

Приведенный выше синтаксис используется для выполнения любого из следующих аргументов команды PsExec:

Параметры команды PsExec
параметробъяснение
Отдельные процессоры, на которых может запускаться приложение, с запятыми, где 1 — это процессор с наименьшим номером. Например, чтобы запустить приложение на CPU 2 и CPU 4, вы должны ввести: -2,4
Скопируйте указанный исполняемый файл в удаленную систему для выполнения. Если опущено, приложение должно находиться в системном пути на удаленной системе.
-dНе ждите окончания процесса (не интерактивно).
Не загружает профиль указанной учетной записи.
Скопируйте указанную программу, даже если файл уже существует в удаленной системе.
Запустите программу, чтобы она взаимодействовала с рабочим столом указанного сеанса в удаленной системе. Если сеанс не указан, процесс выполняется в сеансе консоли.
-часЕсли целевая система — Windows Vista или выше, запустите процесс с повышенным токеном учетной записи, если он доступен.
-LЗапустите процесс как пользователь с ограниченными правами (удаляет группу «Администраторы» и разрешает только привилегии, назначенные группе «Пользователи»). В Windows Vista этот процесс выполняется с низким уровнем целостности.
-NУказывает время ожидания (в секундах) для подключения к удаленным компьютерам.
-пОпределяет необязательный пароль для имени пользователя. Если опущено, вам будет предложено ввести скрытый пароль.
Определяет имя удаленной службы для создания или взаимодействия.
-sЗапускает удаленный процесс в системной учетной записи.
-UОпределяет необязательное имя пользователя для входа на удаленный компьютер.
-vКопирует указанный файл, только если он имеет более высокий номер версии или новее, чем в удаленной системе.
-весУстанавливает рабочий каталог процесса (относительно удаленного компьютера).
-ИксОтображает пользовательский интерфейс на защищенном рабочем столе Winlogon (только для локальной системы).
приоритетЗадает -low, -belownormal, -abovenormal, -high или -realtime для запуска процесса с другим приоритетом. Используйте -background для запуска с низким объемом памяти и приоритетом ввода / вывода в Windows Vista.
компьютерУказывает PsExec запустить приложение на указанных удаленных компьютерах. Если опущен, PsExec запускает приложение в локальной системе, и, если подстановочный знак (\\ *), PsExec запускает команду на всех компьютерах в текущем домене.
@файлPsExec выполнит команду на каждом из компьютеров, указанных в файле.
CMDИмя приложения для выполнения.
аргументыАргументы для передачи (обратите внимание, что пути к файлам должны быть абсолютными путями в целевой системе).

Примеры команд PsExec

Вот несколько примеров того, как использовать PsExec для выполнения таких задач, как запуск удаленных команд командной строки, управление службами Windows, а также запуск или установка программ.

psexec \\ 192.168.86.62 cmd

Один из самых простых способов использовать PsExec для запуска команд командной строки на удаленном компьютере — выполнить cmd, следуя IP-адресу компьютера, 192.168.86.62 в этом примере.

Выполнение этого откроет обычное окно командной строки в существующем и позволит вам вводить каждую команду, как если бы вы сидели перед удаленным компьютером. Например, вы можете ввести ipconfig чтобы получить эти результаты с другого компьютера, или MkDir создать новую папку, реж перечислить содержимое папки и т. д.

psexec \\ mediaserver01 tracert lifewire.com

Другой способ использования PsExec — ввод отдельных команд, но без запуска полной командной строки. В этом примере мы выполняем команду tracert для lifewire.com, и поскольку мы указали имя удаленного компьютера, mediaserver01, результаты команды относятся к этому компьютеру, а не к локальному (то есть к тому, на котором вы работаете). ).

psexec \\ FRONTDESK_PC -u tomd -p 3 * (том # 87 net start spooler

Приведенный выше пример команды PsExec запускает службу диспетчера очереди печати удаленно на компьютере FRONTDESK_PC с использованием пароля пользователя tomd 3 * (tom # 87.

Эту же команду можно использовать для удаленной остановки службы, но вместо «пуск» введите «стоп».

psexec \\ mikelaptopw10 -i -s C: \ Windows \ regedit.exe

Здесь мы используем PsExec для запуска редактора реестра на удаленной машине mikelaptopw10 в системной учетной записи. Поскольку используется -i, программа откроется в интерактивном режиме, что означает, что она действительно запустится на экране удаленного компьютера.

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

psexec \\ J3BCD011 -c "Z: \ files \ ccleaner.exe" cmd / S

В этом последнем примере использования PsExec мы используем -c, чтобы скопировать программу ccleaner.exe на удаленный компьютер J3BCD011, а затем выполнить ее с параметром / S, так как это то, что CCleaner использует для включения автоматической установки (требуется нет ввода пользователя). Для добавления такого аргумента требуется cmd.

PsExec может быть опасным

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

Например, объединение , -U, а также -п, В частности, кто-либо, имеющий сетевое подключение к вашему компьютеру и обладающий знаниями об учетных данных администратора, сможет запускать секретные вредоносные программы, используя чьи-либо учетные данные.

Даже этот последний, вполне приемлемый пример из предыдущего раздела приобретает совершенно новую цель, если учесть, что вместо CCleaner кто-то может установить все что угодно, в фоновом режиме, и никакие окна не показывают, что что-то происходит.

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

Некоторые антивирусные программы ошибочно идентифицируют PsExec как опасный файл, но эти предупреждения можно игнорировать, если вы точно знаете, что используемая вами программа взята из приведенного выше источника Microsoft. Это происходит потому, что известно, что вредоносное ПО использует PsExec для передачи вирусов.

Ссылка на основную публикацию