Вопрос о разрешении доступа к файлам в Windows 7

Я установил свое приложение в Windows 7, и в процессе установки оно устанавливает несколько текстовых файлов. Теперь, если я открою текстовый файл в блокноте и попытаюсь его сохранить, я получаю сообщение об ошибке «Доступ запрещен». Я вошел в систему как администратор на машине, и файл не помечен только для чтения, и с разрешениями безопасности все в порядке.

Однако я мог удалить или переименовать файл без каких-либо проблем, и я мог создать новый файл с тем же именем / местоположением с помощью блокнота, и сохранение работало нормально.

Я так понимаю, это как-то связано с UAC. Мне интересно, что делает UAC, чтобы заблокировать доступ к файлу. Наше приложение не установлено в папке Program files, поскольку я считаю, что UAC ограничивает любые изменения файлов в папке Program Files.

Может ли кто-нибудь пролить свет на то, что происходит.

С уважением, G


person Ganesh    schedule 13.08.2009    source источник


Ответы (4)


С UAC только потому, что вы вошли в систему как пользователь с правами администратора, не означает, что программа действительно работает с ними. Программа должна либо запросить повышение привилегий (что дает всплывающее окно «Вы хотите разрешить этой программе _____» UAC), либо явно запускаться от имени администратора (щелкните правой кнопкой мыши программу / ярлык и выберите «Запуск от имени администратора»).

По умолчанию доступ к большинству областей на диске за пределами стандартных «пользовательских файлов» (также известных как «Мои документы» и др.) Разрешен только администратору, но при желании права доступа к папке можно изменить, чтобы добавить доступ для конкретного пользователя.

person Amber    schedule 13.08.2009
comment
Как я уже сказал в своем исходном вопросе, я могу удалить / переименовать файл, который дал ошибку отказа в доступе при сохранении через блокнот. Кроме того, я могу создавать новые файлы в том же месте, где я получаю сообщение об ошибке отказа в доступе. Я предполагаю, что когда наше приложение устанавливается с помощью Installshield, Windows 7 обрабатывает все файлы, которые были развернуты как часть установки, и тем самым предотвращает доступ. Действительно интересно, как UAC предотвращает доступ только к определенным файлам и как он отслеживает, были ли файлы развернуты программой установки - person Ganesh; 13.08.2009
comment
Могут быть разные уровни доступа к процессам Windows Explorer (где вы будете переименовывать / перемещать) в отличие от несистемных приложений (таких как Блокнот). - person Amber; 13.08.2009
comment
Этот ответ предлагает тактику, которая может быть полезной: используйте «Запуск от имени администратора», чтобы открыть блокнот, затем отредактируйте и сохраните файл. - person grossvogel; 25.10.2009

Вы обнаружите, что сохранение файлов практически в любом месте, кроме области «Мои документы» для пользователя, будет ограничено, включая сохранение на другие диски в системе и т. Д.

Если вы проверите разрешения для каталога, в который вы пытаетесь писать, все, что вам нужно сделать, это явно дать пользователю разрешение. В противном случае только администраторы имеют разрешение, которое требует одобрения UAC от пользователя для получения токена администратора.

person Myforwik    schedule 13.08.2009

Обычно вы получаете ошибку «Доступ запрещен», когда файл уже используется. UAC здесь не может быть проблемой. Проверьте, используется ли файл каким-либо другим процессом.

Для этого вы можете использовать такие инструменты, как Process Explorer от sysinternals.

person Jagannath    schedule 13.08.2009
comment
Этот файл точно не используется, потому что я могу его переименовать / удалить. Просто сохранение из блокнота или любого редактора дает мне эту ошибку. - person Ganesh; 13.08.2009

Вы должны щелкнуть файл правой кнопкой мыши и выбрать свойства. Затем откройте вкладку безопасности, и вы увидите разные учетные записи с разными уровнями привилегий. Щелкните ПОЛЬЗОВАТЕЛИ, и он должен выделиться. В поле под ним должно быть несколько флажков, указывающих на то, что может делать этот пользователь. Щелкните Полный доступ. Подать заявку и хорошо. Тогда можно сэкономить !!!

person Connor    schedule 27.08.2010
comment
Это не сработает - UAC заблокирует запрос, даже если вы являетесь администратором. - person Nux; 23.06.2011