Что означает ошибка «This program cannot be run in DOS mode»
Сообщение «This program cannot be run in DOS mode» появляется при попытке запустить исполняемый файл, который Windows не может корректно распознать или выполнить. Технически этот текст — часть заголовка DOS-заглушки (DOS stub), встроенной в каждый PE-файл Windows: он выводится, когда программу пытаются запустить в среде MS-DOS. Однако в современных системах эта же строка всплывает как признак более серьёзной проблемы — повреждённого файла, несовместимой разрядности или блокировки со стороны системы безопасности.
Чаще всего ошибка возникает в трёх сценариях: при запуске 64-битной программы на 32-битной Windows, при открытии битого или недокачанного установщика и при попытке выполнить файл, предназначенный для другой операционной системы (например, Linux-бинарник). Ниже разберём каждую причину и конкретные шаги по устранению.
Причины появления ошибки
Прежде чем что-то исправлять, определите источник проблемы. Это сэкономит время: половина случаев решается банальной повторной загрузкой файла, а не переустановкой системы.
- 🔧 Несовпадение разрядности — 64-битная программа запускается на 32-битной версии Windows.
- 📦 Повреждённый файл — установщик скачан не полностью, прервана загрузка или сбой при распаковке архива.
- 🦠 Вирусное заражение — вредонос изменил заголовок исполняемого файла.
- 💻 Файл для другой ОС — попытка запустить бинарник Linux или macOS в Windows.
- 🛡️ Блокировка защитником — антивирус или контроль SmartScreen вмешался в запуск.
Отдельный случай — запуск очень старых DOS-программ на 64-битной Windows. Такие системы не содержат подсистему NTVDM, поэтому 16-битные приложения на них физически не работают без эмулятора вроде DOSBox.
Проверка разрядности системы и программы
Первое действие — убедиться, что разрядность Windows соответствует разрядности приложения. Откройте Параметры → Система → О системе и посмотрите строку «Тип системы». Если там указано «32-разрядная операционная система», 64-битные программы на ней запускаться не будут — это аппаратно-программное ограничение, а не сбой.
Обратная ситуация безопасна: 32-битные приложения нормально работают на 64-битной Windows благодаря слою совместимости WoW64. Если ваша система 32-битная, а программа существует только в 64-битном варианте, вариантов два: найти 32-битную версию приложения на сайте разработчика или переустановить Windows на 64-битную редакцию (при условии, что процессор её поддерживает).
⚠️ Внимание: переход с 32-битной Windows на 64-битную возможен только чистой установкой с потерей данных на системном разделе. Заранее скопируйте важные файлы на внешний носитель и проверьте, что процессор поддерживает 64-битный режим.
Повторная загрузка и проверка целостности файла
Если разрядность совпадает, следующий подозреваемый — сам файл. Прерванная загрузка, сбой сети или ошибка при копировании с флешки повреждают структуру PE-файла, и система отказывается его выполнять, выдавая то самое сообщение про DOS mode.
☑️ Проверка целостности установщика
Для сверки контрольной суммы используйте встроенную команду Windows. Откройте командную строку и выполните:
certutil -hashfile "C:\путь\к\файлу.exe" SHA256
Сравните полученное значение с хешем на сайте разработчика — если он опубликован. Совпадение гарантирует, что файл скачан без искажений. Не совпадает — удаляйте и качайте заново, желательно другим браузером или менеджером загрузок.
Запуск в режиме совместимости и от имени администратора
Старые программы, написанные под Windows XP или более ранние версии, иногда конфликтуют с механизмами современных систем. В таком случае вам поможет встроенный режим совместимости: кликните по файлу правой кнопкой мыши, откройте Свойства → Совместимость и установите флажок «Запустить программу в режиме совместимости», выбрав подходящую версию Windows.
Там же включите опцию «Запускать эту программу от имени администратора» — некоторым приложениям не хватает прав на запись в системные каталоги или реестр, и это тоже может проявляться ошибкой при старте. После применения настроек проверьте запуск. Если эффекта нет, попробуйте штатное средство устранения проблем совместимости: оно доступно по правому клику на файле.
Как запустить настоящую DOS-программу на современной Windows
64-битные редакции Windows не поддерживают 16-битные DOS-приложения напрямую. Используйте эмулятор DOSBox: установите его, смонтируйте папку с программой командой mount c C:\путь\к\папке и запустите исполняемый файл внутри окружения эмулятора. Альтернатива — виртуальная машина с FreeDOS.
Проверка системы на вирусы и восстановление файлов Windows
Некоторые вредоносные программы модифицируют заголовки исполняемых файлов или подменяют системные библиотеки, после чего легитимные приложения перестают запускаться с ошибкой про DOS mode. Проведите полное сканирование штатным Защитником Windows или установленным антивирусом, а для перестраховки — одноразовым сканером от независимого разработчика.
Если ошибка появляется у множества разных программ одновременно, вероятна порча системных компонентов. Запустите командную строку от имени администратора и выполните проверку целостности системных файлов:
sfc /scannow
По завершении перезагрузите компьютер. Если SFC сообщит, что повреждения найдены, но не исправлены, дополнительно выполните команду DISM /Online /Cleanup-Image /RestoreHealth — она подтянет исправные компоненты из центра обновления. Эти инструменты безопасны: они не трогают пользовательские данные и работают только с системными файлами.
⚠️ Внимание: не скачивайте «исправленные» версии системных DLL с посторонних сайтов — такие файлы нередко содержат вредоносный код и только усугубляют проблему. Восстанавливайте библиотеки только средствами SFC/DISM или переустановкой программы.
Сводная таблица: причина → решение
| Причина | Как распознать | Решение |
|---|---|---|
| 64-битная программа на 32-битной ОС | В «О системе» указана 32-разрядная ОС | Найти 32-битную версию или сменить ОС |
| Повреждённый установщик | Размер/хеш не совпадает с сайтом | Скачать заново, проверить SHA-256 |
| Файл для другой ОС | Скачан с площадки для Linux/macOS | Найти Windows-сборку программы |
| Вирусное заражение | Ошибка у многих файлов, сбои системы | Полное сканирование, sfc /scannow |
| 16-битная DOS-программа | Очень старое ПО, система 64-битная | Эмулятор DOSBox или виртуальная машина |
Двигайтесь по таблице сверху вниз — причины расположены от самых частых к редким. В подавляющем большинстве случаев достаточно первых двух строк.
Часто задаваемые вопросы
Почему ошибка называется «DOS mode», если у меня современная Windows?
Текст «This program cannot be run in DOS mode» — это стандартная заглушка, вшитая в заголовок каждого Windows-исполняемого файла ещё со времён совместимости с MS-DOS. Когда система не может корректно прочитать или выполнить файл (повреждение, чужая платформа, неверная разрядность), пользователь видит именно эту строку.
Можно ли запустить 64-битную программу на 32-битной Windows?
Нет, это невозможно на уровне архитектуры системы. Варианты: найти 32-битную версию программы у разработчика либо выполнить чистую установку 64-битной Windows — при условии, что процессор поддерживает 64-битные инструкции.
Файл точно целый, но ошибка остаётся. Что делать?
Проверьте, не заблокирован ли файл: откройте его «Свойства» и посмотрите, есть ли внизу кнопка «Разблокировать» (появляется у файлов, скачанных из интернета). Также временно отключите сторонний антивирус и попробуйте запуск от имени администратора. Если ничего не помогает — выполните проверку системных файлов командой sfc /scannow.
Как запустить старую игру для DOS на Windows 10/11?
Напрямую — никак, если система 64-битная: она не содержит подсистемы для 16-битного кода. Установите бесплатный эмулятор DOSBox, смонтируйте в нём папку с игрой и запускайте её внутри эмулятора. Для 32-битной Windows старые DOS-программы часто работают и без эмулятора.
Опасна ли эта ошибка для компьютера?
Сама по себе — нет, это лишь сообщение о невозможности выполнить файл. Однако если ошибка массово появляется у разных программ, это может указывать на вирусное заражение или повреждение системных файлов. В таком случае проведите полное антивирусное сканирование и проверку целостности системы.