Ошибка «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
Если нужно запустить PowerShell-команду прямо из cmd или из пакетного файла, оберните её вызовом интерпретатора:
powershell -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://example.com/script.ps1'))"
Такой вызов сначала запускает PowerShell, а уже внутри него выполняет iex, поэтому ошибка «не является командой» не возникает. Для длинных скриптов удобнее сохранить код в файл .ps1 и вызывать его через powershell -File путь\к\файлу.ps1.
Сравнение способов запуска
Разные варианты запуска отличаются удобством и областью применения. Таблица поможет выбрать подходящий:
| Способ | Где работает | Когда использовать |
|---|---|---|
Прямой ввод iex | PowerShell | Разовый запуск команды из инструкции |
powershell -Command "..." | cmd, bat-файлы | Вызов PowerShell-кода из командной строки |
powershell -File script.ps1 | cmd, планировщик задач | Запуск сохранённого скрипта |
| Скачивание .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.