Ошибка «Отказано в доступе» при запуске скриптов и исполняемых файлов в командной строке и PowerShell

Ошибка «Отказано в доступе» (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 для исключения блокировок со стороны поведенческого анализатора.

Основные методы устранения ошибки «Отказано в доступе»

  1. Конфигурация политики выполнения скриптов PowerShell (Execution Policy)Если скрипт блокируется средой PowerShell с ошибкой о невозможности загрузки из-за отключенного выполнения, требуется изменить уровень безопасности политики.

    Запустите PowerShell от имени Администратора (Ctrl + Shift + Enter) и выполните команду для разрешений локальных скриптов:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine -Force

    Для разового запуска конкретного файла без изменения глобальной конфигурации системы используйте явный обход политики через командную строку:

    powershell.exe -ExecutionPolicy Bypass -File "C:Scriptsdeploy.ps1"

  2. Сброс владельца и восстановление списков доступа 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

  3. Удаление альтернативных файловых потоков (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

  4. Настройка параметров контроля учетных записей (UAC)Выполнение файлов из защищенных директорий (например, C:Program Files или C:WindowsSystem32) требует явного повышения прав.

    Откройте окно настройки UAC: нажмите Win + R, введите UserAccountControlSettings.exe и нажмите Enter.

    Установите ползунок в положение «Уведомлять только при попытках приложений внести изменения в компьютер (по умолчанию)» или временно переведите в нижнее положение «Никогда не уведомлять» для проверки.

    Для постоянного запуска командного файла с правами администратора создайте для него ярлык, откройте Свойства ярлыка → Ярлык → Дополнительно (Advanced) → установите чекбокс «Запуск от имени администратора» (Run as administrator).

  5. Управление правилами 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 и включить компоненты защиты.


Добавить комментарий