Определить, когда доступ к контролируемой папке активен
На 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
Однако, если вам это нужно только для настройки, попробуйте запустить установщик с правами администратора.