2

У меня есть приложение, которое записывает файл журнала в каталог "Program Files", например:

C:\Program Files\SomeApp\blah.log

Это не мое приложение, я не имею никакого контроля над тем, как он работает или куда он помещает файл журнала.

Проводник Windows 7 вообще не показывает этот файл, хотя я выбрал «Показать скрытые файлы, папки и диски» и отменил выбор "Скрыть защищенные файлы операционной системы".

Файл исследователь не отображает файл , если я перейти к:

C:\Users\svec\AppData\Local\VirtualStore\Program Files\SomeApp\blah.log

По-видимому, происходит некоторое сопоставление "Программных файлов" с этим каталогом VirtualStore.

Средство просмотра файлов журнала приложения может видеть файл в диалоговом окне "Открыть файл" в «C:\Program Files\SomeApp\», но у него есть значок блокировки для файла.

Как я могу получить Windows 7 File Explorer, который позволяет мне видеть этот файл в "C:\Program Files\SomeApp\"?

Спасибо!

2 ответа2

5

Как я могу получить Windows 7 File Explorer, который позволяет мне видеть этот файл в "C:\Program Files\SomeApp\"?

Вы не можете по одной очень простой причине: дело не в этом файле. Только ваше плохо разработанное приложение думает, что оно есть. Windows пытается справиться с плохим дизайном вашего приложения и относительно незаметно помещает файл там, где он должен быть, в каталог данных приложения.

Это не проблема Windows, которую нужно "обойти". Это Windows исправляет ваше приложение так, что оно фактически работает, когда используется не администраторами. Это проблема приложения, которую вы должны изрядно изводить поставщиком приложения. Люди, разработавшие ваше приложение, неправильно разработали его таким образом, что, когда дыра в безопасности, связанная с предоставлением всем пользователям полного доступа к каталогу образов программы, была закрыта, приложение не работало для не администраторов. Windows пытается обойти эту неправильную конструкцию для вас, пытаясь заставить приложение работать так, как оно должно было бы работать, вместо того, чтобы ожидать доступа ко всему на уровне администратора.

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

3

Скорее всего, ваше приложение идентифицировано как приложение, которое требует доступа для чтения / записи к папке программы, или очень старое (код эпохи Win9x). Следовательно, ваше приложение выполняется через систему виртуализации приложений в Windows, которая автоматически перенаправляет записи в файловую систему в виртуальное хранилище. За исключением программ, которые виртуализированы таким образом, я не знаю, как увидеть папки в виртуализированном состоянии.

Единственные обходные пути, которые я нашел для этого:

a) Установите приложение где-нибудь, кроме \Program Files , и предоставьте группе « Everyone » полный доступ к папке «Изменить».

б) Запустите приложение в Virtual PC (режим XP).

ETA:

Я провел небольшой поиск, и некоторые приложения, кажется, работают правильно, если вы предоставляете права на изменение / полный доступ к папке в \Program Files обычным пользователям или Everyone , но я знаю, что пробовал это в одном приложении, и это не помочь там.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .