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

Оглавление:

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

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

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

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

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

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

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

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

  1. Введите firewall.cpl в диалоговом окне «Выполнить». Один из способов открыть Run - это сочетание клавиш WIN+R..
  2. Выберите Разрешить приложение или функцию через брандмауэр Windows в левой части окна.

    Image
    Image

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

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

    Image
    Image

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

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

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

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

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

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

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

Скачать и открыть

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

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

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

    Image
    Image

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

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

    Image
    Image
  4. Теперь, когда командная строка открыта для папки, содержащей PsExec.exe, вы можете начать вводить команды на удаленном компьютере.

Понимание синтаксиса

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

Вот как нужно вводить команды PsExec:

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

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

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

Параметры команды PsExec
Параметр Объяснение
- а Отдельные процессоры, на которых может работать приложение, через запятую, где 1 - процессор с наименьшим номером. Например, чтобы запустить приложение на ЦП 2 и ЦП 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 или -re altime для запуска процесса с другим приоритетом. Используйте -background для работы с низким объемом памяти и приоритетом ввода/вывода в Windows Vista.
компьютер Указывает PsExec запустить приложение на указанном(ых) удаленном(ых) компьютере(ах). Если этот параметр не указан, PsExec запускает приложение в локальной системе, а если указан подстановочный знак (), PsExec запускает команду на всех компьютерах в текущем домене.
@file PsExec выполнит команду на каждом из компьютеров, перечисленных в файле.
cmd Имя исполняемого приложения.
аргументы Аргументы для передачи (обратите внимание, что пути к файлам должны быть абсолютными путями в целевой системе).

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

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

Открыть CMD удаленно

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(tom87 net start spooler

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

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

Откройте редактор реестра

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 для передачи вирусов.

Рекомендуемые: