Ошибка «iex не является внутренней или внешней командой»: причины и решение

Ошибка «iex не является внутренней или внешней командой, исполняемой программой или пакетным файлом» появляется в командной строке Windows в тот момент, когда пользователь пытается выполнить iex напрямую в cmd.exe — а этой команды в обычной командной строке просто не существует. Оболочка не находит ни встроенной команды с таким именем, ни исполняемого файла iex.exe в каталогах из переменной PATH, о чём и сообщает стандартным текстом ошибки.

Чаще всего проблема возникает при копировании инструкций из интернета: многие скрипты установки (например, для менеджеров пакетов или утилит разработчика) предлагают вставить команду вида iex ((New-Object System.Net.WebClient).DownloadString(...)). Такая конструкция работает только в PowerShell, где iex — это псевдоним командлета Invoke-Expression. В cmd её выполнение гарантированно завершится ошибкой.

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

Что такое iex и где он работает

iex — это короткий псевдоним (alias) командлета Invoke-Expression в PowerShell. Он принимает строку и выполняет её как код PowerShell. Типичный сценарий — скачать скрипт из интернета и сразу его запустить, не сохраняя на диск.

Ключевой момент: псевдоним существует только внутри среды PowerShell. Командная строка cmd.exe и файл батника о нём ничего не знают. Поэтому первое действие при ошибке — проверить, в какой именно оболочке вы работаете. Подсказка простая: в PowerShell строка приглашения обычно начинается с PS, а в cmd — просто с пути каталога.

  • 🔹 PowerShell (синее окно, приглашение PS C:\...>) — здесь iex работает;
  • 🔹 cmd.exe (классическая чёрная консоль) — здесь iex неизвестен;
  • 🔹 Windows Terminal — может содержать обе оболочки, смотрите на активную вкладку;
  • 🔹 PowerShell Core (pwsh) — кроссплатформенная версия, там iex тоже доступен.

Причина №1: команда введена в cmd вместо PowerShell

Это самый распространённый сценарий. Инструкция с сайта говорит «выполните команду», вы открываете командную строку через Win + R → cmd, вставляете текст — и получаете ошибку. Автор инструкции при этом имел в виду PowerShell.

Чтобы исправить ситуацию, откройте правильную оболочку. Нажмите Win + X и выберите Windows PowerShell или Терминал, либо введите в поиске меню «Пуск» слово powershell и запустите найденное приложение. Затем вставьте команду ещё раз.

Если скрипт требует повышенных привилегий, запускайте PowerShell от имени администратора: правый клик по пункту в меню → «Запуск от имени администратора». Без этого часть установочных скриптов завершится с ошибкой доступа уже после того, как iex успешно отработает.

Причина №2: политика выполнения скриптов PowerShell

Иногда команда запускается в правильной оболочке, но скрипт всё равно не выполняется — появляется сообщение о запрете выполнения сценариев. Это уже другая ошибка, но она часто идёт следом за первой и путает пользователя. Виновата политика выполнения (Execution Policy), которая по умолчанию ограничивает запуск скриптов.

Проверить текущее значение можно командой:

Get-ExecutionPolicy

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

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

После закрытия окна PowerShell настройка автоматически сбросится. Глобально менять политику без необходимости не стоит — это защитный механизм системы.

⚠️ Внимание: конструкция iex с загрузкой кода из интернета выполняет чужой скрипт без сохранения на диск — вы не видите, что именно запускается. Перед выполнением откройте ссылку из команды в браузере и убедитесь, что скрипт получен с официального сайта проекта, а не со стороннего ресурса.

Причина №3: вы искали iex как отдельную программу

Часть пользователей, увидев ошибку, пытается «установить iex» — ищет установщик или скачивает сомнительные файлы iex.exe со сторонних сайтов. Делать этого не нужно: отдельной программы с таким именем в Windows нет, а скачанный из неизвестного источника файл с высокой вероятностью окажется вредоносным.

Если же PowerShell в системе отсутствует или повреждён (что бывает на сильно урезанных сборках Windows), потребуется восстановить компонент. В современных версиях Windows PowerShell встроен в систему, а проверить его наличие можно простым запуском команды powershell в окне «Выполнить» (Win + R).

📊 Где вы столкнулись с ошибкой «iex не является командой»?
В обычной командной строке cmd
В Windows Terminal
При установке программы по инструкции
В bat-файле или скрипте

Пошаговое решение проблемы

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

☑️ Чек-лист устранения ошибки iex

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

Если нужно запустить PowerShell-команду прямо из cmd или из пакетного файла, оберните её вызовом интерпретатора:

powershell -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://example.com/script.ps1'))"

Такой вызов сначала запускает PowerShell, а уже внутри него выполняет iex, поэтому ошибка «не является командой» не возникает. Для длинных скриптов удобнее сохранить код в файл .ps1 и вызывать его через powershell -File путь\к\файлу.ps1.

Сравнение способов запуска

Разные варианты запуска отличаются удобством и областью применения. Таблица поможет выбрать подходящий:

СпособГде работаетКогда использовать
Прямой ввод iexPowerShellРазовый запуск команды из инструкции
powershell -Command "..."cmd, bat-файлыВызов PowerShell-кода из командной строки
powershell -File script.ps1cmd, планировщик задачЗапуск сохранённого скрипта
Скачивание .ps1 и ручной запускPowerShellКогда нужно сначала изучить код скрипта

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

⚠️ Внимание: никогда не выполняйте команды iex со ссылками, полученными в письмах, мессенджерах или на сомнительных сайтах. Такой приём — известный способ распространения вредоносного ПО, поскольку код запускается сразу и не оставляет файла для проверки антивирусом.

Если ошибка появляется в bat-файле или планировщике

Отдельный случай — ошибка возникает не при ручном вводе, а при выполнении пакетного файла. Причина та же: bat-файлы исполняются интерпретатором cmd, где iex недоступен. Необходимо переписать строку, обернув вызов в powershell -Command, как показано выше.

Для задач планировщика Windows в поле «Программа или сценарий» укажите powershell, а в поле аргументов — -File и полный путь к скрипту. Проверьте также, что задача запускается с нужными правами: часть скриптов требует флага «Выполнить с наивысшими правами».

Почему в PowerShell Core (pwsh) iex тоже работает

Псевдоним iex для Invoke-Expression сохранён и в современной кроссплатформенной версии PowerShell 7 (файл pwsh.exe). Если у вас установлены обе версии, уточните в инструкции, какая требуется: классическая Windows PowerShell 5.1 запускается командой powershell, а PowerShell 7 — командой pwsh.

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

Можно ли установить iex как отдельную программу?

Нет. iex — не программа, а псевдоним командлета Invoke-Expression внутри PowerShell. Скачивать файл iex.exe со сторонних сайтов не нужно и опасно.

Почему команда из инструкции не работает в командной строке?

Инструкция рассчитана на PowerShell, а вы вставили команду в cmd. Откройте PowerShell через поиск в меню «Пуск» и повторите ввод там.

Что делать, если появляется ошибка о запрете выполнения скриптов?

Это срабатывание политики выполнения. Выполните Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass в текущем окне PowerShell и повторите команду — настройка действует только до закрытия окна.

Безопасно ли выполнять iex со ссылкой из интернета?

Только если ссылка ведёт на официальный источник проекта и вы доверяете автору скрипта. Код выполняется сразу и не сохраняется на диск, поэтому предварительно откройте ссылку в браузере и просмотрите содержимое скрипта.

Как запустить iex-команду из bat-файла?

Оберните её вызовом интерпретатора: powershell -Command "iex (...)". Для длинных скриптов сохраните код в файл .ps1 и вызывайте через powershell -File.