Поиск по сайту:

PsExec: Выполнение команд на удаленных компьютерах


PsExec - это небольшая программа, которая позволяет ИТ-администраторам выполнять команды и процессы на удаленных компьютерах.

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

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

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

Давайте начнём.

Требования PsExec

Удаленный компьютер должен соответствовать следующим требованиям:

  • Порт TCP/445 открыт
  • Порт UDP/137 открыт
  • Учетные данные для удаленного компьютера (подойдут учетные данные домена или локальные).
  • Управление удаленными службами (RPC) открыто - это не обязательно, но PsExec работает очень медленно, если включен брандмауэр и эта служба заблокирована.

Видеоурок

Если вам не нравятся видео, то продолжайте читать детали ниже.

Защитите PsExec с помощью брандмауэра Windows

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

Вот шаги для разрешения и обеспечения безопасности PsExec.

Шаг 1: Включите брандмауэр Windows

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

Убедитесь, что оно включено для всех профилей (домашний, частный, публичный).

Шаг 2: Разрешите порты PsExec в брандмауэре Windows

PsExec требует, чтобы порты tcp/445 и udp/137 были открыты на удаленном компьютере. Ниже приведена команда PowerShell для активации этого для доменного профиля.

Совет: Используйте параметр -RemoteAddress, чтобы ограничить подключения с авторизованных систем. В этом примере я разрешаю только IP-адресу «192.168.100.10» устанавливать соединения с удалённым компьютером для службы обмена файлами и принтером. Если другой IP-адрес попытается подключиться к удалённому компьютеру, файрвол заблокирует это.

Вот команда для включения TCP/445.

New-NetFirewallRule -DisplayName 'TCP/445' -Profile @('Domain') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('445') -RemoteAddress 192.168.100.10

Вот команда для включения UDP/137.

New-NetFirewallRule -DisplayName 'UDP/137' -Profile @('Domain') -Direction Inbound -Action Allow -Protocol UDP -LocalPort @('137') -RemoteAddress 192.168.100.10

В графическом интерфейсе настройки удалённого IP-адреса находятся на вкладке диапазона.

Шаг 3: Разрешить управление удаленными службами (необязательно)

Это не обязательно, но PsExec будет работать очень медленно, если эта служба будет заблокирована. Я также использую опцию -RemoteAddress, чтобы ограничить, какие IP-адреса могут подключаться к удаленному компьютеру.

Set-NetFirewallRule -DisplayGroup “Remote Service Management” -Enabled True -Profile domain -RemoteAddress "192.168.100.10"

Как установить PsExec

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

Шаг 1: Скачайте PsExec

PsExec является частью пакета PsTools, предоставляемого Microsoft.

Вы можете скачать это здесь.

Шаг 2: Извлеките загрузку

Распакуйте загруженный файл (PSTools.zip) и скопируйте его на диск вашего жесткого диска. Я скопировал его в корень c: (пример c:\pstools).

кончик: Для удобства вы также можете скопировать PsExec.exe в системный путь (например, c:\windows\system32), это позволит вам запустить exe без необходимости менять директории из командной строки.

Шаг 3: Протестируйте Psexec

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

Откройте командную строку Windows и перейдите в каталог pstools, затем введите psexec и нажмите Enter. Вы должны увидеть, что PsExec возвращает версию и синтаксис команды.

На скриншоте ниже вы можете видеть, что я перешел в каталог "c:\pstools" для выполнения команды psexec.

Ввод psexec также является быстрым способом увидеть синтаксис и параметры командной строки.

Примеры PsExec

Использовать PsExec очень просто, базовый синтаксис таков:

psexec \\remotecomputer command [arguments]

Пример 1: Выполнение команды на удаленном компьютере

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

psexec \\pc1 ipconfig

В этом примере я выполняю команду ipconfig на удаленном компьютере PC1.

Пример 2: Выполнение команды на нескольких компьютерах

Чтобы запустить PsExec на нескольких компьютерах, просто разделите компьютеры запятой. Вот я запускаю ipconfig на pc1 и srv-vm1.

psexec \\pc1,srv-vm1 ipconfig

Пример 3: Укажите имя пользователя и пароль

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

psexec \\pc1 -u user -p password ipconfig

Пример 4: Завершение процесса на удалённом компьютере

Чтобы убить процесс на удалённом компьютере, используйте команды ниже.

Сначала вам нужно получить PID процесса, это можно сделать с помощью команды tasklist.

psexec \\pc1 tasklist

Найдите номер PID процесса, затем используйте taskkill, чтобы завершить процесс.

psexec \\pc1 taskkill /pid 2892 /f

Пример 5: Установка программного обеспечения

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

psexec \\pc1 msiexec.exe /i "c:\it\7z2201-x64.msi"

Пример 6: Перезапуск удаленного компьютера

Используйте эту команду, чтобы перезагрузить удалённый компьютер. Здесь я говорю перезагрузить pc1 через 60 секунд.

psexec \\pc1 shutdown /r /t 60

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

Пример 7: Удалить файл

Эта команда удалит файл users.txt с удаленного компьютера.

psexec \\pc1 cmd /c del /f c:\it\users.txt

Пример 8: Перезапустите spooler принтера

В этом примере я остановлю и запущу службу спуллера на удаленном компьютере

psexec \\pc1 net stop spooler

Чтобы запустить службу спулера, используйте эту команду.

psexec \\pc1 net start spooler

Пример 9. Скопировать и запустить пакетный файл

-c параметр скопирует указанный файл на удаленный компьютер и выполнит его.

psexec \\pc1 -c pcinfo.bat

Пример 10. Открытие командной строки на удаленном компьютере

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

psexec \\pc1 cmd

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

Пример 11: Открыть программу

Если вы хотите открыть программу на удаленном компьютере, используйте параметр -i. Параметр -i запускает программу так, чтобы она взаимодействовала с рабочим столом. Например, используйте эту команду, чтобы открыть notepad.exe на удаленном компьютере.

psexec \\pc1 -i notepad

На этом заканчивается этот гид, оставьте ваши отзывы в комментариях ниже.

Затем ознакомьтесь с моим списком из 50 самых полезных команд для Windows.