Officeの一時ファイルやThumbs.dbなどをPowerShellで一掃

ファイルサーバの空き容量が減ってきたので調べてみたら、 削除されていないOfficeファイルの一時ファイルや、Thumbs.dbが結構あることが分かった。

Thumbs.dbはグループポリシーでネットワークドライブ上では生成しないようにしているはずだが、 ローカルのフォルダをファイルサーバにコピーすると、一緒にくっついてくるらしい。

以下のPowerShellスクリプトをタスクスケジューラに登録して、定期的(1日1回)にゴミ掃除。

$a = @()
$a += Get-ChildItem "(掃除対象フォルダのパス1)" -Force -Recurse
$a += Get-ChildItem "(掃除対象フォルダのパス2)" -Force -Recurse
$a += Get-ChildItem "(掃除対象フォルダのパス3)" -Force -Recurse

$a | Where-Object { `
  $_.Name -like "~*" -and $_.LastWriteTime -lt (Get-Date).AddDays(-1) `
  -or $_.Name -like "*.tmp" `
  -or $_.Name -eq "Thumbs.db" `
  -or $_.Name -eq ".DS_Store" `
  -or $_.Name -like "._*" `
  } | Remove-Item -Force

削除対象は以下の通り。

  • 更新日時が1日以上前のOffice一時ファイル("~*")
  • 拡張子が"tmp"のファイル
  • "Thumbs.db"
  • .DS_Store._*などのMac OSで使用されるファイル