Windows 10 nie pokazuje tych samych folderów w Eksploratorze plików i selektorze plików Internet Explorer

5

Widzę dziwne zachowanie na komputerze użytkownika. Gdy próbuję wybrać plik w selektorze plików programu Internet Explorer, nie widzę tych samych folderów, co w systemie Windows.

Na przykład, jeśli przejdę do C:\Users\username\Documents\, podfoldery są różne. Jeśli skopiuję ścieżkę z Eksploratora Windows do okna wyboru pliku, pokaże to właściwe pliki, ale jeśli przejdę do góry C:\Users\username\Documents\, ponownie pokazuje nieprawidłowe pliki.

Jak to się dzieje i jak mogę to rozwiązać?

Po niektórych testach takie zachowanie ma miejsce tylko w przypadku przesyłania plików w aplikacjach Silverlight. Zdarza się, że wyświetlany folder to:

C:\Users\username\AppData\Local\Microsoft\Windows\INetCache\Virtualized\C\Users\username\Documents\
user2223898
źródło
Nie jestem pewien, czy dobrze to rozumiem. Czy używasz pliku & gt; Otwórz okno dialogowe w IE i przeglądaj folder Dokumenty? Czy możesz opublikować zrzut ekranu przedstawiający wygląd okna dialogowego i inny zrzut ekranu widoku folderu.
Win32Guy
@ w32sh Mówię o selektorze plików, który otwiera się, gdy aplikacja internetowa musi przesłać plik. W rzeczywistości dzieje się to na komputerze telepracownika, więc muszę czekać na niego, zanim będę mógł robić zrzuty ekranu.
user2223898
@Burgi: tak, nawet foldery są różne, to jak c: użytkownicy nazwa użytkownika Dokumenty wskazują na inne miejsce pod selektorem plików przeglądarki internetowej podczas korzystania z Silverlight.
user2223898
1
To jest Zwirtualizowany folder . Widzieć Ochrona plików systemowych za pomocą wirtualizacji UAC (część 1)
DavidPostill
1
@DavidPostill: tak, problem znika, jeśli wyłączę tryb chroniony w Internet Explorerze, ale nie jestem pewien, czy to dobry pomysł.
user2223898

Odpowiedzi:

7

Jak wspomniano w komentarzach, ten folder był zwirtualizowany . Wtyczka Silverlight, próbując na nią spojrzeć, widzi zupełnie inne miejsce.

Po pierwsze, trochę historii

W przejściu z Windows XP na Vista Microsoft poważnie podchodził do ludzi działających jako zwykli użytkownicy (w przeciwieństwie do administratorów). Niestety, programiści aplikacji nie stali się poważni, a ładunki programów pisały do ​​lokalizacji „systemowych” C:\Windows lub HKEY_LOCAL_MACHINE. Aby umożliwić uruchamianie tych aplikacji, Microsoft dodał funkcję o nazwie przekierowanie lub Wirtualizacja UAC . Gdy programy działające jako użytkownicy standardowi próbowali pisać do lokalizacji tylko dla administratora, zapis się powiódł, ale dane rzeczywiście zostały zapisane w lokalizacji dla użytkownika, w szczególności:

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

Ale co to ma wspólnego z tym?

Tryb chroniony przeglądarki Internet Explorer powoduje, że IE i jego wtyczki działają jako coś jeszcze mniej wydajnego niż standardowy użytkownik. Przejście XP → Vista wprowadziło ideę obowiązkowe poziomy . Każdy zabezpieczany obiekt ma obowiązkowy poziom : niski, średni, wysoki lub system. Rzeczy, które mają być napisane przez zwykłych użytkowników / programy, mają średni poziom obowiązkowy.

Rzeczy, do których nawet niezaufane programy mogą zapisywać dane, mają niski poziom obowiązkowy i właśnie w tym działa tryb chroniony IE. Dlatego nie może pisać na żadnym z dokumentów ani upuszczać złych rzeczy do folderu użytkownika. System plików zostanie przekierowany do tych wtyczek do:

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

Należy zauważyć, że obowiązkowe poziomy integralności mogą odmówić dostępu, nawet jeśli uznaniowa lista kontroli dostępu na to pozwoliłaby. Może to spowodować pewne zamieszanie, jeśli nie wiesz o obowiązkowej kontroli dostępu.

Jak sprawdzić obowiązkowy poziom pliku lub folderu?

Użyj icacls użyteczność, jak icacls file.txt lub icacls \path\to\folder. Kiedy uruchomię to na Virtualized folder, dostaję:

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)

Jak widać, folder ma niski poziom obowiązkowy. Na moim C:\ dysk, dostaję:

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)

Korzeń mojego dysku ma wysoki poziom obowiązkowy. Większość obiektów nie pokazuje tej linii; gdy jest nieobecny, Windows zakłada, że ​​obiekt ma średni poziom obowiązkowy.

Jak zatrzymać przekierowanie?

Wyłączenie trybu chronionego wszędzie by to zrobiło, ale byłoby to złe dla bezpieczeństwa. Jeśli ufasz witrynie obsługującej aplikację Silverlight, możesz dodać ją do strefy internetowej, która ma wyłączony tryb chroniony. Zrób to, otwierając okno dialogowe Opcje internetowe, przełączając się na kartę Zabezpieczenia, zaznaczając Zaufane strony strefa i kliknięcie przycisku Witryny.

Ben N
źródło
Doskonała odpowiedź, nieskończenie lepsza niż to, co mogłem zrobić.
Burgi