Определить, когда доступ к контролируемой папке активен

На Win10 функция "Защита от вымогателей" Controlled Folder Access препятствует доступу программ, не входящих в белый список, к определенным папкам.

Есть ли способ (API), чтобы узнать, есть ли эта функция, когда вы получаете ошибку в какой-либо файловой операции? Пока что я не смог найти ни одной.

В частности, я хочу добавить в de Desktop ссылку / значок приложения во время установки. Насколько я знаю, innoSetup не знает об этом и выдает ошибку, поэтому моя идея состоит в том, чтобы создать ссылку самостоятельно и, в случае ошибки, сообщить пользователю, но я хотел бы подтвердить, что настоящая причина проблемы CFA.

1 ответ

Вы можете найти в реестре, включена ли функция или нет:

В ключе \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Windows Defender Exploit Guard\Controlled Folder Access, есть свойство только для чтения EnableControlledFolderAccess равно 1 если включена защита от программ-вымогателей, 0 иначе.

Подключ AllowedApplications перечисляет полный путь.exe уже разрешенных приложений.

Подключ ProtectedFolders перечисляет папки, добавленные пользователем вручную (каталоги "Документы", "Изображения", "Избранное", "Видео" и "Музыка" фактически защищены).

Попробуйте PowerShell: Get-MpPreference | Select-Object -ExpandProperty EnableControlledFolderAccess

Также вы можете проверить защищенные папки и разрешенные приложения: Get-MpPreference | Select-Object -ExpandProperty ControlledFolderAccessProtectedFolders Get-MpPreference | Select-Object -ExpandProperty EnableControlledFolderAccess

Однако, если вам это нужно только для настройки, попробуйте запустить установщик с правами администратора.

Другие вопросы по тегам