La directory non nascosta non viene visualizzata in Explorer, ma il programma che l'ha creata può accedervi


26

Sto usando IMAPSize per il backup delle mie cassette postali. Il processo scarica semplicemente il contenuto della tua casella di posta in .emlfile sul tuo disco. Ad ogni modo, la prima cassetta postale di cui ho effettuato il backup viene visualizzata come mi aspetto. Tuttavia, il prossimo non viene visualizzato in Explorer e, se lo inserisco nella barra degli indirizzi, mi dice che non esiste.

Tuttavia, IMAPSize insiste sul fatto che i file siano presenti. (Un sacco di scrittura su disco veniva eseguito durante l'operazione.) Inoltre, la directory non viene visualizzata nella finestra di directory di Windows e - come ho strumenti GNU installato - si vede in ls(ma non nella nativa dir). Non riesco a cdentrare nella directory, ma lssembra essere in grado di accedervi (e, in effetti, le directory e i file che mi aspetto sembrano essere lì).

finestra del prompt dei comandi che mostra gli elenchi

Si noti inoltre che il timestamp e la dimensione del file di backup.dbsono diversi nell'output dire ls -l.

In breve: cosa sta succedendo qui e come posso risolverlo !?


1
L'unica differenza evidente che vedo è che ls -lsta mostrando un numero particolare di hardlink alle directory e ai file "nascosti" ... Non so perché, né come un hardlink sia nemmeno interpretato in NTFS-land.
Xophmeister

... Solo per confermare: posso accedere ai dati nei file "nascosti", dalla riga di comando, usando cat(un altro coreutil GNU). Ancora una volta, tuttavia, gli strumenti nativi di Windows (ad esempio type) non riescono nemmeno a trovare il file.
Xophmeister,

Risposte:


63

Fammi indovinare: il programma che ha creato il file e anche i programmi di utilità GNU non sono in esecuzione come amministratore.

Innanzitutto, un po 'di storia. Ai tempi di Windows XP, molti programmi presumevano che sarebbero sempre stati eseguiti come admin e avrebbero scritto in posti come C:\Windowse C:\Program Files (x86)con un selvaggio abbandono. Con Vista, Microsoft ha cercato di rendere meno amministratori le persone, ma gli utenti standard non possono scrivere in quei luoghi. Avevano bisogno di quei programmi dubbi per continuare a funzionare (altrimenti la gente non si sarebbe aggiornata). Quindi, hanno introdotto una funzione magica chiamata virtualizzazione UAC .

I programmi in esecuzione come utenti standard potrebbero pensare che le loro scritture in posizioni importanti siano riuscite, ma in realtà Windows ha eliminato i dati in una posizione per utente. Quando quei programmi cercano i file in una directory, Windows controlla se ci sono file nell'archivio virtuale di quel luogo e, in tal caso, li aggiunge all'elenco delle directory. (Esiste una funzionalità equivalente per il registro.)

Sembra che il tuo programma di posta abbia tentato di scrivere in un posto Program Files (x86)mentre era in esecuzione come un normale utente. La scrittura è stata reindirizzata, quindi in realtà non è andata in quel posto. Il programma può ancora vederlo, perché Windows mantiene l'illusione per questo. Explorer non lo vede perché comunica al sistema operativo che è ben educato e quindi non necessita di reindirizzamento. Il comando del prompt dei dircomandi non è un programma (è solo una caratteristica di cmd.exe), quindi è anche considerato "al corrente" e quindi non vengono mostrati i file di compatibilità. lsè un programma che evidentemente non è a conoscenza, quindi arriva a vedere i file di compatibilità.

Troverai il tuo file qui:

%LOCALAPPDATA%\VirtualStore\Program Files (x86)\IMAPSize\backup

Mentre ti guardi intorno VirtualStore, potresti essere sorpreso di quali programmi non sono ben educati e hanno bisogno della rete di sicurezza della virtualizzazione.

Se si desidera interrompere il reindirizzamento, eseguire il programma come amministratore o salvare i backup in una posizione in cui è possibile scrivere senza i privilegi di amministratore.


16
E qui pensavo di conoscere Windows. O questo è uno scherzo di aprile ben fatto, o ho imparato qualcosa di significativo oggi. grazie @Ben N!
Aganju,

3
@Aganju Alcuni mesi fa ho dovuto aiutare un utente di Windows a creare una coppia di chiavi per WinSCP. E quelli sono diventati invisibili più o meno allo stesso modo descritto nella domanda. All'epoca ho ipotizzato una spiegazione praticamente uguale a quella fornita in questa risposta. Non mi sono preoccupato di verificare la mia ipotesi, perché il problema è stato risolto inserendo il file nella directory home degli utenti. Ma almeno posso confermare che questa risposta non mi sembra affatto uno scherzo.
Kasperd,

3
Bene, sarò dannato! Eccoli tutti. Questo è un comportamento strano , anche se è previsto. Pensavo di avere un errore del filesystem! ... Ciò spiegherebbe anche perché il mio primo backup della casella di posta viene visualizzato: il programma è stato eseguito per la prima volta dall'installer ("Vuoi eseguire tali-e-tali ora?"), Che lo avrebbe elevato a privilegi di amministratore; mentre l'esecuzione "nascosta" era come l'utente locale.
Xophmeister,

1
@Aganju Immagino che tu non abbia mai usato molto Vista. Aveva una funzione per mostrarti i file virtualizzati in Explorer; perché il problema era sufficientemente comune per alcuni anni. Quando arrivò Win7, il software più utilizzato smise di supporre che potesse scrivere nelle sottocartelle della sua directory di installazione; e la funzionalità è stata resa significativamente meno visibile o forse completamente rimossa nelle versioni più recenti di Windows.
Dan Neely,

4
@Xophmeister È un compromesso. Come notato nella risposta, il software che scriveva nella propria directory dell'applicazione era raramente comune prima di Vista. Questo è un enorme buco di sicurezza, quindi ha dovuto essere risolto. Le alternative erano 1) impedire la scrittura e interrompere tutte le applicazioni, 2) utilizzare la virtualizzazione per salvare i file in un luogo sicuro. 1) è ovviamente insostenibile e molto contro lo SOP di Microsoft, e alla fine porterebbe a tutti quelli che eseguono tutto sotto l'amministratore come prima. Può essere fonte di confusione, ma è probabilmente l'opzione migliore. Non scrivere in directory pericolose.
Luaan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.