LoginSignup
1
0

More than 3 years have passed since last update.

Windows (NTFS) 滅多に使わないファイル操作

Last updated at Posted at 2020-02-03

ほぼ自分用メモです。
主に元システムパーティションだったドライブを綺麗にするときに必要

以降の処理を実行すると、所有者変更の時点でゴミ箱が壊れます。必ず事前に整頓を
もし壊れた場合、本記事の後ろの方を参考にしてください

あと、管理者権限のコマンドプロンプト上で実行してください。

まずJUNCTION SYMLINK SYMLINKD を消す

消さないと、後述のコマンド実行時に盛大に事故る可能性がある(実際に事故ってC:\Usersを壊した・・・)

cd /d D:
for /f "tokens=*" %a in ('dir /s /b /al') do rmdir "%a"

一部変な消え方することがあるみたい(リンク以外のものを消そうとしてる?)ので重要なフォルダには使わないでください。責任負えません。
(recursiveにしてないので空じゃないフォルダは消えないし、rmdirなのでファイルは消えないし、大丈夫だとは思いますが・・・)

Windowsフォルダとか消す

所有者をAdministratorsにする

takeown /f D: /a /r /d y

自分は>nulをつけてログ無しで実行してるが、システムパーティションに対して実行すると大概こける上に
どこでこけたかわからないので>nul外して実行せざるを得ないような・・・(ログ出す分遅くなる)

実行順とか気をつければどうにかできるのかもしれない。

ACLをリセットする

icacls D: /reset /t /c /l /q

エラー時続行オプション(/c)つけてるので必要に応じて外してください。
ルートフォルダ(D:\)への処理だけエラーになりますが問題ありません。
(ドライブのルートフォルダは権限の継承元がないため、リセットすると誰もアクセスできなくなってしまうのでエラーになるようです)

隠しファイル・読み取り専用・システムファイル属性を消す

Windowsフォルダを消すこと自体に対して必須ではないですが、その後のファイル整頓考えてやっておいてもいいと思います。

cd /d D:
attrib -r -s -h /s /d /l

Windowsフォルダを削除する

独自に入れたドライバ等を確認したい場合は、ここで確認をしてください。
レジストリを取り出したい場合もここで確認する必要あり?(自分は不要だったので未確認)
あと忘れがちなのが、drivers/etc/hosts

cd /d D:
rmdir /s /q Windows

その後

以下ソフト使ってファイル整頓してます
おすすめ、というわけでもないんですが参考になるなら。

WinDirStat - ディレクトリ毎の使用容量把握
https://windirstat.net/

FastCopy - ファイルコピー
https://fastcopy.jp/

WinMerge - 差分確認
https://winmerge.org/

dupeGuru - 重複ファイル検索
https://dupeguru.voltaicideas.net/

System Volume Informationの容量が大きすぎて困っている場合

コントロール パネル => 回復 => システム復元の構成から
当該ドライブの構成を開いて復元ポイントが作成されていないか確認してみてください。

ショートカット・インターネットリンクを消す

InternetExplorer等のブラウザを使用している場合、お気に入りが消えてしまうので、*.urlは対象から外してください

cd /d D:
del /f /s /a *.lnk *.url

空フォルダを消す

junction系と同様、rmdirの仕様が変わった場合予期しないファイルが削除されることがあるので十分注意してください。

cd /d D:
for /f "tokens=*" %a in ('dir /s /b /ad ^| sort /r') do rmdir "%a"

ゴミ箱を破損させてしまった場合

まず、フォルダ構造としては次のような形になっています

$RECYCLE.BIN          : ゴミ箱のルートディレクトリ
┣ S-1-5-21-<machine sid>-<rid> : 各ユーザごとのゴミ箱
┃┣ $RXXXXXXX          : 削除したファイルの実体
┃┣ $IXXXXXXX           : 削除したファイルのメタデータ(場所とか削除日時とか)

※ machine sid: 00000000-00000000-00000000 (1~10桁の10進数3つをハイフンで繋いでいる)
※ rid: 1001 (ユーザを識別する4桁程度の10進数)

そして、S-1-5-21-...のフォルダ名を自分のIDに書き換えた上で、
所有者を自分に変更すれば、エラーも回避できますしゴミ箱を開くだけで中身を参照できます。
(数が少なくGUIから対処したのでコマンドは確認していません)
自分のSIDは、whoami /userで確認できます。

※参考:https://superuser.com/questions/1506219/how-to-decode-file-names-in-recycle-bin

ちなみに.0000から始まるファイルがいくつかあったのですがこちらは謎(未調査)です・・・
追記:
.0000から始まるファイルについて、中身を確認したらすべてexeまたはdllファイルでした。
また、msys2系のファイルが多かったこと・mintty.exe等と思しきファイルが多かったことから、
msys2でpacman -Suを実行した際に生成されている可能性があります。

あとがき

自分用と言いながら、なにか改善要望等あれば取り入れますのでご指摘頂ければ幸いです。
寝る直前に備忘で走り書きしてるので、内容間違えてたりしたらごめんなさい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0