5

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

Например, если я перейду к C:\Users\username\Documents\ , подпапки будут другими. Если я копирую путь из проводника Windows в диалоговое окно выбора файлов, оно показывает правильные файлы, но если я поднимаюсь до C:\Users\username\Documents\ , оно снова показывает неправильные файлы.

Как это происходит, и как я могу решить это?

После некоторых тестов это происходит только для загрузки файлов в приложениях Silverlight. Бывает, что отображаемая там папка:

C:\Users\username\AppData\Local\Microsoft\Windows\INetCache\Virtualized\C\Users\username\Documents\

1 ответ1

7

Как упоминалось в комментариях, эта папка была виртуализирована. Плагин Silverlight, пытаясь взглянуть на него, на самом деле видит совершенно другое место.

Сначала немного истории

При переходе с Windows XP на Vista Microsoft стала серьезно относиться к людям, работающим в качестве обычных пользователей (в отличие от администраторов). К сожалению, разработчики приложений не стали серьезными, и множество программ писали в "системные" места, такие как C:\Windows или HKEY_LOCAL_MACHINE . Чтобы эти приложения продолжали работать, Microsoft добавила функцию под названием перенаправление или виртуализация UAC . Когда программы, работающие как обычные пользователи, пытались записывать в места только для администратора, запись выполнялась успешно, но данные фактически сохранялись в расположении для каждого пользователя, а именно:

\Users\<username>\AppData\Local\VirtualStore

Но какое это имеет отношение к этому?

Защищенный режим Internet Explorer заставляет IE и его плагины работать как нечто менее мощное, чем обычный пользователь. Переход XP → Vista ввел идею обязательных уровней. Каждый защищаемый объект имеет обязательный уровень: низкий, средний, высокий или системный. Материал, предназначенный для написания обычными пользователями / программами, имеет средний обязательный уровень.

Вещи, в которые могут писать даже ненадежные программы, имеют низкий обязательный уровень, и именно в этом работает IE защищенного режима. Поэтому он не может писать ни на одном из ваших документов или сбрасывать плохие вещи в вашу пользовательскую папку. Файловая система для этих плагинов перенаправляется на:

\Users\<username>\AppData\Local\Microsoft\Windows\INetCache\Virtualized

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

Как проверить обязательный уровень файла или папки?

Используйте утилиту icacls , например, icacls file.txt или icacls \path\to\folder . Когда я запускаю это в папке Virtualized , я получаю:

NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
MYCOMP\Ben:(I)(OI)(CI)(F)
Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

Как видите, папка имеет низкий обязательный уровень. На моем диске C:\ я получаю:

NT AUTHORITY\Authenticated Users:(S,AD)
NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(M)
NT AUTHORITY\SYSTEM:(OI)(CI)(F)
BUILTIN\Administrators:(OI)(CI)(F)
BUILTIN\Users:(OI)(CI)(RX)
Mandatory Label\High Mandatory Level:(OI)(NP)(IO)(NW)

Корень моего диска имеет высокий обязательный уровень. Большинство объектов не будут отображать эту линию; когда он отсутствует, Windows предполагает, что объект имеет средний обязательный уровень.

Как мне остановить перенаправление?

Повсеместное отключение защищенного режима сделает это, но это будет плохо для безопасности. Если вы доверяете сайту, который обслуживает приложение Silverlight, вы можете добавить его в зону Интернета с отключенным защищенным режимом. Для этого откройте диалоговое окно «Свойства обозревателя», перейдите на вкладку «Безопасность», выберите зону « Надежные узлы» и нажмите кнопку «Узлы».

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