Как упоминалось в комментариях, эта папка была виртуализирована. Плагин 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, вы можете добавить его в зону Интернета с отключенным защищенным режимом. Для этого откройте диалоговое окно «Свойства обозревателя», перейдите на вкладку «Безопасность», выберите зону « Надежные узлы» и нажмите кнопку «Узлы».