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

Выполнять команды удаленно с ПК с Windows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

psexec [ \\ компьютер [, computer2 [, …] | @file \ ]] [ -u имя пользователя [ -p пароль ] [ -ns ] [ -r имя_службы ] [ -h ] [ -l ] [ -s | -e ] [ -x ] [ -i [ сессия ]] [ -c исполняемый файл [ -f | -v ]] [ -w каталог ] [ -d ] [ < приоритет >] [ -an , n , …] cmd [ arguments ]

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

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

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























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

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

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

  psexec \\ 192.168.86.62 cmd  

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

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

  psexec \\ mediaserver01 tracert lifewire.com  

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

  psexec \\ FRONTDESK_PC -u tomd -p 3 * (сетевой стартер тома № 87  

Приведенный выше пример команды PsExec запускает службу диспетчера очереди печати spooler удаленно на компьютере FRONTDESK_PC с использованием пароля пользователя tomd , 3 * (том # 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 и как его можно использовать для компрометации компьютера при использовании в небезопасной среде.

Например, сочетание -c , -u и -p определенно позволит любому, кто подключен к компьютеру по сети и обладает знаниями о учетные данные администратора, выполнять секретные вредоносные программы с чьими-либо учетными данными.

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

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

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

Оцените статью
Solutics.ru
Добавить комментарий