В Windows есть несколько способов запретить запуск командной строки. Как правило, их используют системные администраторы, которые хотят ограничить доступ к командной строке Windows для пользователей. Также эту технику часто используют различные зловреды, проникшие в систему и отключающие возможность запуска командной строки для затруднения диагностики, поиска и удаления вредоносных программ/скриптов.
Допустим, при попытке открыть командную строку (cmd.exe), или выполнить BAT/CMD скрипт, появляется сообщение:
The command prompt has been disabled by your administrator. Press any key to continue . . .
Приглашение командной строки отключено вашим администратором
Это явно указывает, что запуск командной строки отключен с помощью параметра реестра DisableCMD . Запустите редактор реестра (
regedit.exe
) и перейдите в раздел
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System
Если значение параметра DisableCMD равно 1 или 2, это запрещает запуск командной строки для пользователя.
Чтобы разрешить запуск cmd.exe, измените значение параметра на 0.
REG add HKCU\Software\Policies\Microsoft\Windows\System /v DisableCMD /t REG_DWORD /d 0 /f
Однако сначала нужно проверить, не включен ли данный параметр через групповые политики (в этом случае через некоторое время при следующем обновлении настроек групповых политик ваше значение в реестре будет сброшено).
Чтобы вывести результирующие настройки GPO на компьютере, выполните команду Win+R ->
rsop.msc
В этом примере видно, что командная строка отключена локальной групповой политикой.
Чтобы отключить этот параметр GPO:
- Откройте консоль локального редактора групповой политики (
gpedit.msc
) - Перейдите в раздел User Configuration —> Administrative Templates —> System
- Откройте настройки параметра Prevent access to the command prompt. Отключите его (изменив значение на Disabled или Not Configured)
- Обновите настройки групповых политик, выполнив Win+R ->
gpupdate /force
Также еще есть два простых способа запретить запуск командной строки в Windows. Первый предполагает включение запрета на запуск определенных исполнимых файлов. Если для пользователя включить политику Don’t run specified Windows applications в разделе User Configuration -> Administrative Templates -> System) и добавить в нее
cmd.exe
, то при попытке открыть командную строку, появится ошибка:
Restrictions This operation has been cancelled due to restrictions in effect on this computer. Please contact your system administrator.
Проверьте с помощью консоли
rsop.msc
, включена ли эта политика.
Также администраторы могут использовать Software Restriction Poilicy (SRP) или AppLocker для ограничения запуска определенных приложений. Если настроена любая из этих политик контроля исполняемых файлов, при запуске cmd.exe появится ошибка:
This app has been blocked by your administrator
Эти политики настраиваются в разделе GPO редактора Computer Configuration -> Windows Settings -> Security Settings -> Software Restriction Policy или Application Control Policy.
Еще один способ запретить запускать пользователям определенный исполняемый файл, но разрешить его запуск для администраторов – изменить NTFS разрешения на EXE файлю
Например, попытка открыть cmd.exe, возвращает ошибку:
Access is denied.
Или
C:\WINDOWS\system32\cmd.exe Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.
В этом случае можно попробовать открыть консоль powershell.exe и проверить текущие NTFS разрешения на файл с помощью утилиты icacls:
icacls C:\Windows\System32\cmd.exe
В данном случае видно, что стоит DENY на запуск файла для группы
BUILTIN\Users
. Чтобы убрать запрет:
icacls C:\Windows\System32\cmd.exe /remove:d Users
takeown /f C:\Windows\System32\cmd.exe