DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 320081 - Ultima modifica: venerdì 7 giugno 2013 - Revisione: 6.3

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I320081

In questa pagina

Sommario

Può risultare impossibile eliminare un file o una cartella in un volume con file system NTFS. In questo articolo viene illustrato il motivo per cui può non essere consentito eliminare un file o una cartella in un volume NTFS e come affrontare le diverse cause per risolvere il problema.

Informazioni

NOTA: a livello interno in NTFS le cartelle sono considerate un particolare tipo di file. In questo articolo il termine "file" è pertanto riferito sia a un file che a una cartella.

Causa 1: il file utilizza un ACL

Può risultare impossibile eliminare un file se tale file utilizza un elenco di controllo di accesso (ACL). Per risolvere il problema, modificare le autorizzazioni relative al file. Per modificare le autorizzazioni può essere necessario acquisire la proprietà dei file.

Gli amministratori sono implicitamente in grado di diventare proprietari di qualsiasi file, anche se non hanno ricevuto in modo esplicito alcuna autorizzazione sul file. I proprietari dei file sono implicitamente in grado di modificare le autorizzazioni relative ai file, anche se non hanno ricevuto in modo esplicito alcuna autorizzazione sul file. Per eliminare il file, può quindi essere necessario acquisirne la proprietà e ottenere le autorizzazioni necessarie per l'eliminazione.

Non è possibile utilizzare alcuni strumenti di protezione per visualizzare o modificare le autorizzazioni perché il file dispone di un ACL non canonico

Per evitare il problema, utilizzare un altro strumento, ad esempio una versione successiva di Cacls.exe.

Le voci di controllo di accesso (ACE, Access Control Entry) in un ACL dispongono di una certa sequenza preferenziale in base al tipo. Ad esempio, le voci ACE che negano l'accesso precedono in genere quelle che concedono l'accesso. Nulla impedisce tuttavia a un programma di scrivere un ACL che contenga voci ACE in una qualsiasi sequenza arbitraria. In alcune versioni precedenti di Windows si verificavano problemi durante il tentativo di lettura di tali elenchi ACL "non canonici". In alcuni casi non è possibile modificare correttamente questi ACL utilizzando l'editor di protezione grafico di Esplora risorse. Questo problema è stato risolto nelle versioni successive di Windows. Se si verifica questo problema, utilizzare la versione più recente di Cacls.exe. Anche se non è possibile visualizzare o modificare direttamente un ACL, sarà comunque possibile creare un nuovo elenco ACL che consenta l'accesso al file.

Causa 2: il file è in uso

Può risultare impossibile eliminare un file se è in uso. Per risolvere questo problema, individuare il processo in cui è aperto l'handle e chiudere tale processo.

In base al modo in cui il file è aperto, ad esempio con accesso esclusivo o con accesso condiviso, potrebbe non essere possibile eliminare un file in uso. È possibile utilizzare diversi strumenti per individuare i processi con handle aperti per i file in qualsiasi momento.

Per ulteriori informazioni sugli strumenti che consentono l'individuazione dei processi con handle aperti per i file, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
242131  (http://support.microsoft.com/kb/242131/IT/ ) How to: Display a List of Processes That Have Files Open
172710  (http://support.microsoft.com/kb/172710/IT/ ) How to Use the OH Tool on the Windows NT 4.0 Resource Kit
I sintomi associati a questo problema possono variare. Può essere possibile utilizzare il comando delete per eliminare un file, ma questo non viene effettivamente eliminato finché non viene rilasciato dal processo in cui tale file è aperto. Inoltre, potrebbe essere impossibile accedere alla finestra di dialogo Protezione per un file in attesa di eliminazione. Per risolvere questo problema, individuare il processo in cui è aperto l'handle e chiudere tale processo.

Causa 3: un danneggiamento nel file system impedisce l'accesso al file

Può risultare impossibile eliminare un file se il file system è danneggiato. Per risolvere questo problema, eseguire l'utilità Chkdsk sul volume del disco per correggere eventuali errori.

Settori del disco danneggiati, componenti hardware con guasti di altro tipo o bug software possono danneggiare il file system e compromettere lo stato dei file. Possono verificarsi problemi di diverso tipo durante le operazioni più comuni. Quando il file system rileva un danneggiamento, viene registrato un evento nel registro eventi e in genere viene visualizzato un messaggio che richiede l'esecuzione di Chkdsk. La capacità di Chkdsk di ripristinare i dati dei file dipende dalla natura del danneggiamento. In ogni caso, Chkdsk ripristinerà la coerenza interna del file system.

Per ulteriori informazioni sull'utilità Chkdsk, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
176646  (http://support.microsoft.com/kb/176646/IT/ ) Error Message: The File or Directory Is Corrupt...
187941  (http://support.microsoft.com/kb/187941/IT/ ) An Explanation of CHKDSK and the New /C and /I Switches

Causa 4: i percorsi dei file superano il limite di caratteri MAX_PATH

Può risultare impossibile aprire un file in caso di problemi con il relativo percorso.

Risoluzione 1: utilizzare un nome in formato 8.3 generato automaticamente per accedere al file

Per risolvere questo problema, è possibile utilizzare il nome in formato 8.3 generato automaticamente per accedere al file. Questa può essere la soluzione più semplice nel caso in cui il percorso sia complesso per l'eccessiva lunghezza dei nomi delle cartelle. Se anche il percorso 8.3 è troppo lungo o se sul volume sono stati disattivati i nomi in formato 8.3, passare alla Risoluzione 2.

Per ulteriori informazioni sulla disattivazione dei nomi di file in formato 8.3 sui volumi NTFS, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
121007  (http://support.microsoft.com/kb/121007/IT/ ) How to Disable the 8.3 Name Creation on NTFS Partitions

Risoluzione 2: rinominare o spostare una cartella con un percorso troppo lungo

Per risolvere questo problema, rinominare la cartella in modo che non esistano più i file che superano il limite MAX_PATH. In questo caso, partire dalla cartella principale o da qualsiasi altro punto, quindi rinominare le cartelle in modo da abbreviarne i nomi. Se questa operazione non è sufficiente a risolvere il problema, ad esempio se un file è situato a una profondità superiore a 128 cartelle, passare alla Risoluzione 3.

Risoluzione 3: utilizzare una condivisione di rete la cui profondità sia pari a quella della cartella

Se la Risoluzione 1 o 2 non è praticabile o non consente di risolvere il problema, creare una condivisione di rete alla profondità massima possibile nella struttura di cartelle, quindi rinominare le cartelle accedendo alla condivisione.

Risoluzione 4: utilizzare uno strumento in grado di visitare percorsi complessi

Molti programmi per Windows prevedono una lunghezza massima dei percorsi inferiore a 255 caratteri e pertanto allocano uno spazio di memorizzazione interno sufficiente solo per tali percorsi tipici. Il file system NTFS non prevede questo limite e consente l'utilizzo di percorsi più lunghi.

Questo problema può verificarsi se si crea una condivisione in un certo punto della struttura di cartelle a un livello già sufficientemente basso, quindi si crea una struttura complessa al di sotto di tale punto utilizzando la condivisione. Alcuni strumenti che agiscono localmente sulla struttura di cartelle potrebbero non essere in grado di visitare l'intera struttura partendo dalla cartella principale. Affinché questi strumenti possano visitare la condivisione, può essere necessario utilizzarli in un modo particolare. Nella documentazione relativa all'API CreateFile è descritto un metodo per visitare l'intera struttura in questa situazione.

In genere è possibile gestire i file utilizzando il programma con il quale sono stati creati. Se si dispone di un programma in grado di creare file che superano il limite MAX_PATH, in genere è possibile utilizzare quello stesso programma per eliminare o gestire i file. I file creati su una condivisione in genere possono essere eliminati utilizzando la stessa condivisione.

Causa 4: il nome del file contiene un nome riservato nello spazio dei nomi Win32

Se il nome del file include un nome riservato nello spazio dei nomi Win32, ad esempio "lpt1", può essere impossibile eliminare il file. Per risolvere il problema, utilizzare un programma non Win32 per rinominare il file. Per utilizzare il file, è possibile servirsi di uno strumento POSIX o un qualsiasi altro strumento che utilizzi la sintassi interna appropriata.

Può inoltre essere possibile utilizzare alcuni comandi incorporati per evitare i tipici controlli dei nomi riservati Win32 se si utilizza una particolare sintassi per specificare il percorso del file. Se ad esempio si utilizza il comando del in Windows XP, è possibile eliminare un file denominato "lpt1" specificando il percorso completo del file mediante la seguente sintassi speciale:
del \\?\c:\percorso_del_file\lpt1
Per ulteriori informazioni sull'eliminazione di file con nomi riservati in Windows NT e Windows 2000, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
120716  (http://support.microsoft.com/kb/120716/IT/ ) How to Remove Files with Reserved Names in Windows
Per ulteriori informazioni sull'eliminazione di file con nomi riservati in Windows XP, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
315226  (http://support.microsoft.com/kb/315226/IT/ ) How to Remove Files with Reserved Names in Windows XP
Se si apre un handle per un file utilizzando il meccanismo CreateFile tipico di Win32, alcuni nomi di file sono riservati per i dispositivi DOS precedenti. Per assicurare la compatibilità con le versioni precedenti, questi nomi di file non sono consentiti e non possono essere creati utilizzando le tipiche chiamate dei file Win32. Questo aspetto non costituisce tuttavia una limitazione di NTFS.

Può essere possibile utilizzare un programma Win32 per evitare i tipici controlli dei nomi che vengono effettuati quando un file viene creato o eliminato utilizzando la stessa tecnica impiegata per visitare le cartelle con un percorso che supera il limite MAX_PATH. Alcuni strumenti POSIX, inoltre, non sono soggetti a questi controlli dei nomi.

Causa 5: il nome file contiene un nome non valido nello spazio dei nomi Win32

Può essere impossibile eliminare un file se il relativo nome contiene un nome non valido, ad esempio se termina con uno spazio o un punto o se è costituito solo da spazi. Per risolvere il problema, utilizzare uno strumento che impiega la sintassi interna appropriata per eliminare il file. Con alcuni strumenti è possibile utilizzare la sintassi "\\?\" per operare su questi file, ad esempio:
del "\\?\c:\percorso_del_file_che contiene uno spazio finale.txt "
La causa di questo problema è analoga alla Causa 4. Se tuttavia si utilizza una sintassi Win32 tipica per aprire un file il cui nome contiene spazi o punti finali, gli spazi o i punti finali vengono eliminati prima dell'apertura del file. Pertanto, se in una stessa cartella sono presenti due file denominati "AFile.txt" e "AFile.txt" (con lo spazio dopo il nome del file) e si tenta di aprire il secondo file utilizzando chiamate Win32 standard, viene invece aperto il primo file. Analogamente, se si dispone di un file il cui nome sia semplicemente " " (uno spazio) e si tenta di aprire tale file utilizzando chiamate Win32 standard, viene aperta la cartella superiore del file. In questa situazione, se si tenta di modificare le impostazioni di protezione di questi file, è possibile che questa operazione non riesca o che vengano modificate inaspettatamente le impostazioni di altri file. Se si verifica questo comportamento, è possibile che un file per il quale si ritiene di disporre delle autorizzazioni sia in effetti associato a un ACL restrittivo.

Combinazioni di cause

In alcune circostanze possono verificarsi insiemi di cause che rendono più complessa la procedura per l'eliminazione di un file. Se ad esempio si accede al sistema come amministratore del computer, è possibile che si verifichi una combinazione tra la Causa 1 (non si dispone delle autorizzazioni necessarie per eliminare un file) e la Causa 5 (il nome del file contiene un carattere finale che determina il reindirizzamento dell'accesso verso un file differente o inesistente) che impedisce l'eliminazione del file. Se si tenta di risolvere la Causa 1 acquisendo la proprietà del file e aggiungendo le autorizzazioni necessarie, potrebbe comunque essere impossibile eliminare il file in quanto la Causa 6 impedisce all'editor ACL nell'interfaccia utente di accedere al file appropriato.

In questa situazione, è possibile utilizzare l'utilità Subinacl con il parametro /onlyfile (l'utilità è inclusa nel Resource Kit) per modificare la proprietà e le autorizzazioni relative a un file altrimenti inaccessibile, ad esempio:
subinacl /onlyfile "\\?\c:\percorso_del_file_problematico" /setowner=dominio\amministratore /grant=dominio\amministratore=F
NOTA: questo comando corrisponde a un'unica riga di comando. In questo caso è stato mandato a capo per facilitarne la lettura.

Questa riga di comando di esempio modifica il file C:\percorso_del_file_problematico che contiene uno spazio finale in modo che l'account dominio\amministratore sia il proprietario del file e ne abbia il controllo completo. A questo punto è possibile eliminare il file utilizzando il comando del con la stessa sintassi "\\?\".

Le informazioni in questo articolo si applicano a:
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Advanced Server, Limited Edition
  • Microsoft Windows Datacenter Server Limited Edition
Chiavi: 
kbinfo KB320081
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store