Ошибка «Отказано в доступе» (Access is denied, код ошибки 0x80070005) при попытке запуска исполняемых файлов (.exe, .bat, .cmd) и сценариев (.ps1, .vbs) возникает вследствие срабатывания механизмов разграничения прав и защиты операционной системы Windows. Основными причинами сбоя являются некорректные списки контроля доступа (NTFS ACL), действующие политики выполнения скриптов (Execution Policy), блокировка файлов потоковой системой NTFS (Alternate Data Streams), блокировки компонентом UAC, а также ограничения систем AppLocker или Защитника Windows. Пошаговые инженерные методы ниже позволяют полностью восстановить штатную работу командной строки и интерпретатора PowerShell.
Экспресс-проверка и первичная диагностика
- Запуск консоли с повышенными привилегиями: нажмите комбинацию Win + X и выберите
Терминал (Администратор)илиPowerShell (Администратор). - Проверка снятия блокировки файла: откройте свойства файла, на вкладке «Общие» (General) проверьте наличие чекбокса «Разблокировать» (Unblock) и установите его при наличии.
- Диагностика текущей политики исполнения в PowerShell: выполните команду
Get-ExecutionPolicy -Listдля просмотра действующего уровня ограничений. - Проверка базовых разрешений NTFS: убедитесь, что текущая учетная запись имеет права «Чтение и выполнение» (Read & execute) для целевого каталога.
- Временная приостановка стороннего антивирусного ПО и модулей EDR/XDR для исключения блокировок со стороны поведенческого анализатора.
Основные методы устранения ошибки «Отказано в доступе»
- Конфигурация политики выполнения скриптов PowerShell (Execution Policy)Если скрипт блокируется средой PowerShell с ошибкой о невозможности загрузки из-за отключенного выполнения, требуется изменить уровень безопасности политики.
Запустите PowerShell от имени Администратора (Ctrl + Shift + Enter) и выполните команду для разрешений локальных скриптов:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine -ForceДля разового запуска конкретного файла без изменения глобальной конфигурации системы используйте явный обход политики через командную строку:
powershell.exe -ExecutionPolicy Bypass -File "C:Scriptsdeploy.ps1" - Сброс владельца и восстановление списков доступа NTFS (icacls / takeown)При повреждении ACL или отсутствии прав у текущего пользователя необходимо пересчитать права на файл или папку через консольные утилиты.
Откройте
cmd.exeот имени Администратора и выполните смену владельца объекта:takeown /F "C:Toolsscript.bat" /AПредоставьте группе «Администраторы» полные права на объект:
icacls "C:Toolsscript.bat" /grant Администраторы:F /CДля англоязычных версий ОС используйте название группы на английском языке:
icacls "C:Toolsscript.bat" /grant Administrators:F /CПри необходимости сбросьте наследование для всего каталога:
icacls "C:Tools*" /reset /T /C - Удаление альтернативных файловых потоков (Zone.Identifier)Файлы, полученные из сети Интернет или по локальной сети, автоматически получают метку зоны безопасности
ZoneID=3, блокирующую их запуск.Проверьте наличие заблокированного потока с помощью PowerShell:
Get-Item -Path "C:Toolsapp.exe" -Stream "Zone.Identifier"Снимите атрибут блокировки с одиночного файла:
Unblock-File -Path "C:Toolsapp.exe"Для рекурсивной разблокировки всех файлов в папке примените конвейер:
Get-ChildItem -Path "C:Tools" -Recurse | Unblock-File - Настройка параметров контроля учетных записей (UAC)Выполнение файлов из защищенных директорий (например,
C:Program FilesилиC:WindowsSystem32) требует явного повышения прав.Откройте окно настройки UAC: нажмите Win + R, введите
UserAccountControlSettings.exeи нажмите Enter.Установите ползунок в положение «Уведомлять только при попытках приложений внести изменения в компьютер (по умолчанию)» или временно переведите в нижнее положение «Никогда не уведомлять» для проверки.
Для постоянного запуска командного файла с правами администратора создайте для него ярлык, откройте Свойства ярлыка → Ярлык → Дополнительно (Advanced) → установите чекбокс «Запуск от имени администратора» (Run as administrator).
- Управление правилами AppLocker и Software Restriction PoliciesЗапуск исполняемых файлов может ограничиваться локальными политиками безопасности.
Нажмите Win + R, введите
gpedit.mscдля вызова Редактора локальной групповой политики.Перейдите по пути: Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Политики ограниченного использования программ (Software Restriction Policies).
Если параметры заданы, щелкните правой кнопкой мыши по разделу и выберите «Удалить политики ограниченного использования».
Перейдите по пути: Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Политики управления приложениями → AppLocker (Computer Configuration → Windows Settings → Security Settings → Application Control Policies → AppLocker).
Проверьте подразделы «Правила для исполняемых файлов» и «Правила для скриптов» на наличие блокирующих правил (Deny) для целевой учетной записи.
Сводная таблица параметров, кодов ошибок и реестра
| Параметр / Ошибка | Путь в реестре / Команда | Техническое описание и значение |
|---|---|---|
0x80070005 |
Системный код ERROR_ACCESS_DENIED |
Прямой отказ в доступе на уровне ядра ОС, вызваный ограничениями NTFS, UAC или антивирусом. |
| ExecutionPolicy | HKLMSOFTWAREMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell |
Строковый параметр ExecutionPolicy. Значения: Restricted, RemoteSigned, Unrestricted, Bypass. |
| EnableLUA (UAC) | HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem |
Параметр DWORD EnableLUA. Значение 1 — UAC включен, 0 — UAC полностью отключен. |
| Zone.Identifier | Альтернативный поток NTFS filename:Zone.Identifier |
Хранит данные о зоне происхождения файла. Удаляется утилитой Unblock-File или Remove-Item -Stream. |
| AppIDSvc | Служба «Удостоверение приложения» (services.msc) |
Служба обеспечивает работу AppLocker. Состояние «Остановлена» блокирует enforcement-правила AppLocker. |
Нестандартные причины и альтернативные решения
Контролируемый доступ к папкам (Controlled Folder Access)
Компонент Защитника Windows предотвращает изменение файлов в защищенных каталогах неавторизованными исполняемыми файлами. Перейдите по пути: Пуск → Параметры → Конфиденциальность и безопасность → Безопасность Windows → Защита от вирусов и угроз → Защита от программ-вымогателей → Управление защитой от программ-вымогателей (Start → Settings → Privacy & Security → Windows Security → Virus & threat protection → Ransomware protection).
Отключите параметр «Контролируемый доступ к папкам» (Controlled folder access) или перейдите в раздел «Разрешить работу приложения через контролируемый доступ к папкам» и добавьте путь к cmd.exe, powershell.exe или конкретному исполняемому файлу.
Блокировка запуска с сетевых ресурсов (UNC-пути)
При выполнении файлов по сетевым путям вида \192.168.1.100Sharescript.cmd система безопасности расценивает ресурс как ненадёжный. Для решения проблемы подключите сетевой ресурс как локальный диск или добавьте IP-адрес в зону интрасети.
Откройте окно настройки свойств браузера: нажмите Win + R, введите inetcpl.cpl. Перейдите на вкладку «Безопасность» → выделите «Местная интрасеть» (Local intranet) → нажмите кнопку «Сайты» → «Дополнительно» → добавьте IP-адрес узла (например, 192.168.1.100) в список и нажмите «Закрыть».
Альтернативный метод — монтирование диска через утилиту командной строки:
net use Z: \192.168.1.100Share /user:Administrator Password
Очистка прав на временный каталог %TEMP%
Многие скрипты и распаковщики исполняемых файлов создают временные объекты в директории пользователя. Если права на папку %TEMP% нарушены, процесс завершится ошибкой отказа в доступе.
Выполните полную очистку и сброс разрешений для каталога временных файлов через cmd.exe:
icacls "%TEMP%" /reset /T /C
icacls "%TEMP%" /grant %USERNAME%:(OI)(CI)F /T
Отключение систем защиты (UAC, Защитник Windows, политики исполнения) снижает общий уровень безопасности операционной системы. После выполнения необходимых административных сценариев рекомендуется восстановить настройки политики выполнения в режим
RemoteSignedи включить компоненты защиты.
