不特定多数が使うパソコンには色々な人のプロファイルがたまっていく。手動で削除するのは面倒なので、スクリプト化した。
手動で削除する場合
スクリプトで消す前に手動で削除する場合の正式な手順の確認。プロファイルの実態は C:\Users\配下にあるのだが、これをエクスプローラからDeleteキーなどで手動で消してしまうと他のユーザでログインできなくなるなど挙動がおかしくなるので、下記のようにシステムのプロパティから削除する必要がある。システムのプロパティを呼び出す方法はこちらを参照Windowsでよく使うプログラム起動コマンド
PowerShell スクリプトで一括で消す場合
Power大量のプロファイルがたまっている場合はこっちの方が早い。下記のファイルをテキストエディタに作成して、拡張子を .ps1 で保存して実行する。実行するとログインしているユーザとビルトインユーザ以外全て削除される。
# 作業フォルダの定義
$scriptname = $MyInvocation.MyCommand.Name
$path = $PSScriptRoot
# 作業フォルダに移動
cd $path
#ログ取得
if (!(Test-Path .\log)){
mkdir .\log
Write-Output ("logフォルダを作成しました。")
}
$logfile = ".\log\" + $scriptname +"_"+ (Get-date -Format "yyyy-MMdd-HHmmss") + ".log"
Start-Transcript $logfile -Append
# ローカル端末のプロファイル一覧を取得
$profiles = Get-WmiObject -class win32_userprofile | ? {$_.LocalPath -Like "C:\Users\*"}
$count = 0
foreach($p in $profiles){
$count ++
# プロファイル削除処理
$p | Remove-WmiObject
Write-Output("[" + $count +"]/[" + $profiles.Count + "] " + $p.LocalPath + " を削除しました。")
}
# ログ停止
Stop-Transcript
コメント