Windows Server上(NTFS)の消えないファイルを削除する方法

Windows Server上(NTFS)の消えないファイルを削除する方法

<症状>

WindowsのファイルサーバーFile Serverのボリューム上に、何かの拍子で不思議な文字列の削除できないファイルが生成されることがあります。

消せない02 (例:「CA~.」など)

図-1 消えないファイルの例

ファイルの属性は、「System/Hide/Archive」のすべてを持っているようですが、このファイルは実態がないため、変更や削除ができません。所有権ゲットや属性変更すら受け付けない「システム専用」ファイルのようです。しかし格納されているフォルダ(例の場合Targetフォルダ)に紐づいていると思われることから、そのフォルダを移動したりリネームしたりは可能なようです。

<対処方法>

◆準備

Windows Server 2008 以降の場合は標準のコマンド、2003以前の場合は「Windows Server 2003 Resource Kit Tools」を導入する必要があります。

http://www.microsoft.com/en-us/download/details.aspx?id=17657

利用するのは「Robocopy.exe」というツールです。これが動作する環境が必要です。(これはいろいろ便利なのですが、その利用方法は別途ご紹介します。)

◆手順

(1) 消えないファイル実体が格納されているフルパス(ローカルコンピューターでの操作)を確保する。できればボリュームの浅い位置にフォルダごと移動して、簡単な名前にリネームしておくほうが望ましい。

そのほかの必要なファイルは事前に正常な別フォルダに移動しておくこと。(一緒に消されないように。)

(このページでは、H:\Target とする。)

(2) 何も入っていないフォルダを作成する。(同一ボリューム上)

(このページでは、H:\Source とする。)

消せない03

消せない04

図-2 空フォルダを準備

 

(3) 以下のコマンドを実行する。

消せない06

Robocopy.exe <コピー元のフォルダ名> <中身を消したいフォルダ名> /Purge オプション (リソースキット利用の場合は、パスが通っていない場合がありますので、必要に応じ Path文に追加するか、カレントまたはフルパス指定する必要があります。)

 

消せない07

消せない09

図-3 実行画面と実行結果

原理としては、「空っぽのSourceフォルダ」の内容を、「すべて消したいTargetフォルダ」に強制コピーして、Sourceフォルダにないファイルはシステムにうまく消してもらおうという動作を行っています。

あとは、Targetフォルダを削除すれば、消したかったファイルとフォルダは消滅します。

<応用例>

この方法を応用すれば、

・巨大な容量を持つフォルダ

・無数のファイルが格納されているフォルダ

・長すぎるフォルダ名・ファイル名

・有効でないファイル名など

のケースに利用でき、簡単にボリューム内のファイル削除が可能となります。

注意:あくまでも「削除」にあたる操作なので、使用に際しては指差し確認など、間違いのない利用をお願いします。

2013/04 公開 Kurochin’s MIND Control WEB Site

広告