PsExec не является внутренней или внешней командой: причины и решение

Ошибка «psexec не является внутренней или внешней командой, исполняемой программой или пакетным файлом» появляется в командной строке Windows тогда, когда система не может найти исполняемый файл psexec.exe по указанному пути. В подавляющем большинстве случаев причина одна из двух: утилита PsExec из набора Sysinternals PsTools либо вообще не скачана на компьютер, либо лежит в папке, которая не прописана в системной переменной окружения PATH.

Командная строка ищет исполняемые файлы только в текущем каталоге и в папках, перечисленных в PATH. Если psexec.exe находится, например, в «Загрузках», а вы запускаете команду из C:\Windows\System32, Windows его просто не увидит. Ниже разберём, как проверить наличие утилиты, правильно её установить и настроить окружение, чтобы команда работала из любого каталога.

Почему Windows не находит PsExec

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

Если утилита на диске есть, но ошибка сохраняется, типичные причины выглядят так:

  • 📁 Файл psexec.exe распакован в папку, которой нет в переменной PATH;
  • ⌨️ В имени команды допущена опечатка — например, psxec или psexс с кириллической буквой;
  • 📦 Архив PsTools не распакован, и вы пытаетесь запустить утилиту прямо из ZIP;
  • 🔄 Переменная PATH была изменена, но окно командной строки открыто до изменения и использует старые значения;
  • 🛡️ Антивирус удалил или поместил в карантин psexec.exe — некоторые защитные решения относятся к ней настороженно из-за возможности удалённого исполнения команд.
⚠️ Внимание: скачивайте PsTools только с официального сайта Microsoft (раздел Sysinternals). Сторонние источники нередко подменяют утилиту вредоносными файлами, а антивирусная репутация PsExec и так неоднозначна — подделку вы можете не заметить.

Шаг 1. Проверяем, скачан ли PsExec

Откройте папку, куда вы распаковывали PsTools, и убедитесь, что там действительно лежит файл psexec.exe. Если вы ещё не скачивали набор, загрузите архив PsTools с официальной страницы Microsoft Sysinternals и распакуйте его в постоянную папку — например, C:\Tools\PsTools. Не оставляйте утилиту в «Загрузках»: эту папку часто чистят, и путь к ней неудобно прописывать.

Быстрая проверка наличия файла выполняется прямо из командной строки:

dir C:\Tools\PsTools\psexec.exe

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

Шаг 2. Запуск PsExec без настройки PATH

Самый быстрый способ убедиться, что утилита работает, — запустить её с полным путём или из собственной папки. В командной строке перейдите в каталог с утилитой и выполните команду:

cd /d C:\Tools\PsTools

psexec \\имя_компьютера cmd

Либо укажите полный путь к исполняемому файлу:

C:\Tools\PsTools\psexec.exe -accepteula cmd

Обратите внимание на ключ -accepteula: при первом запуске PsExec показывает лицензионное соглашение, и в пакетных сценариях без этого ключа утилита может «зависнуть» в ожидании нажатия кнопки. Если с полным путём команда работает, а без него — нет, проблема точно в переменной PATH, и переходим к её настройке.

Шаг 3. Добавляем папку PsTools в переменную PATH

Чтобы команда psexec работала из любого каталога, добавьте папку с утилитой в системную переменную окружения PATH. Порядок действий в Windows 10 и 11 одинаковый:

  • ⚙️ Нажмите Win + R, введите sysdm.cpl и откройте вкладку «Дополнительно»;
  • 🌍 Нажмите кнопку «Переменные среды»;
  • ✏️ В разделе «Системные переменные» найдите Path, нажмите «Изменить» → «Создать» и укажите путь, например C:\Tools\PsTools;
  • ✅ Подтвердите все окна кнопкой «ОК» и обязательно закройте и заново откройте командную строку — уже открытые окна не подхватывают новые значения PATH.

☑️ Проверка после настройки PATH

Выполнено: 0 / 4

Проверить результат можно командой where psexec — она покажет, какой именно файл находит система. Если выводится путь к вашей папке, настройка завершена. Если команда ничего не находит, перепроверьте запись в PATH: лишний пробел или точка с запятой в конце иногда ломают распознавание.

📊 Какой способ решения помог вам
Добавление папки в PATH
Запуск с полным путём
Повторное скачивание PsTools
Проблема была в антивирусе

Альтернатива: копирование в системную папку

Вместо правки PATH некоторые администраторы копируют psexec.exe в каталог, который уже входит в PATH, — чаще всего C:\Windows\System32. Способ рабочий, но у него есть нюансы: нужны права администратора, а при обновлении PsTools легко забыть заменить старую копию. Кроме того, в 64-разрядной Windows при запуске из 32-разрядных процессов возможны перенаправления в SysWOW64, что иногда путает при диагностике.

Сравним оба подхода:

КритерийПапка в PATHКопия в System32
Права администратораНужны для системной PATHОбязательны
Обновление PsToolsЗамена файлов в одной папкеЛегко забыть про копию
Порядок в системеУтилиты в отдельном каталогеФайл попадает в системную папку
Риск конфликтовМинимальныйВозможны дубликаты версий

Для долгосрочной работы предпочтительнее вариант с отдельной папкой и записью в PATH — так проще обновлять весь набор PsTools и контролировать версии.

Если ошибка сохраняется: дополнительная диагностика

Иногда путь настроен верно, а ошибка остаётся. В этом случае проверьте следующие моменты. Во-первых, откройте новое окно командной строки и выполните echo %PATH% — убедитесь, что ваша папка реально присутствует в выводе. Во-вторых, проверьте карантин антивируса: если psexec.exe был удалён, восстановите файл и добавьте папку PsTools в исключения защитника, если это соответствует политике безопасности вашей организации.

В-третьих, убедитесь, что вы запускаете команду в cmd.exe или PowerShell с корректным синтаксисом. В PowerShell при запуске из текущей папки требуется префикс .\:

.\psexec.exe -accepteula cmd
⚠️ Внимание: не добавляйте в исключения антивируса и не запускайте PsExec, если вы не уверены в происхождении файла. Утилиту нередко используют вредоносные программы для распространения по сети, поэтому источник загрузки должен быть только официальным.
Почему антивирусы реагируют на PsExec

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

Типичные ошибки после запуска

После того как ошибка «не является командой» устранена, могут появиться другие сообщения — уже связанные с самой работой PsExec. Например, ошибка доступа (Access denied) при подключении к удалённой машине означает, что не хватает прав учётной записи, отключён административный общий ресурс ADMIN$ или блокирует брандмауэр. Это отдельная тема, но важно не путать её с исходной проблемой поиска файла.

Также учтите, что для удалённого запуска на целевом компьютере должны быть доступны службы Server и Remote Registry, а учётная запись — иметь права локального администратора. Если PsExec запускается локально, но не подключается к соседней машине, проверяйте именно сетевые настройки, а не PATH.

Часто задаваемые вопросы

PsExec встроен в Windows 10 или 11?

Нет. PsExec входит в бесплатный набор Sysinternals PsTools от Microsoft, но не поставляется вместе с операционной системой. Его нужно скачать и распаковать отдельно.

Я добавил папку в PATH, но ошибка не исчезла. Что делать?

Закройте все окна командной строки и откройте новое — изменения PATH применяются только к вновь запущенным процессам. Затем проверьте командой where psexec, видит ли система файл.

Можно ли запускать PsExec без прав администратора?

Локальный запуск простых команд иногда возможен, но для большинства задач — установка службы, удалённое выполнение, работа с системными процессами — требуются права администратора. Запускайте командную строку от имени администратора.

Антивирус удалил psexec.exe. Это вирус?

Сам по себе PsExec — легитимная утилита Microsoft, но антивирусы часто помечают её как потенциально опасную из-за возможности удалённого исполнения кода. Если файл скачан с официального сайта Sysinternals, его можно восстановить из карантина и добавить в исключения в соответствии с политикой безопасности вашей организации.

В PowerShell команда psexec не работает, а в cmd работает. Почему?

В PowerShell исполняемые файлы из текущего каталога запускаются только с префиксом .\, например .\psexec.exe. Если папка добавлена в PATH, команда должна работать и без префикса — проверьте, что окно PowerShell открыто после изменения PATH.