こんにちは。
Powershellで3か月以上前の古いユーザプロファイルを削除したいと思っています。
まず、こちらで実行したのですがすぐに終わってしまい何も処理がされませんでした。
Get-CIMInstance win32_userProfile | where{($_.LastUseTime -lt $(Get-Date).Date.AddDays(-180))} | Remove-CIMInstance
試しにwhere部分を省いて実行するとちゃんとプロファイルが削除されるので、whereの条件が間違っていると思っています。
Get-CIMInstance win32_userProfile | Remove-CIMInstance
Get-CIMInstance win32_userProfile の部分を実行してLastUseTimeを見るとこのようになっており、
LastUseTime : 6/6/2018 10:15:24 AM
次に、(Get-Date).Date.AddDays(-90) の部分を実行するとこのようになっています。
(Get-Date).Date.AddDays(-90) Thursday, March 8, 2018 12:00:00 AM
よって、おそらくFormatが別のものと認識されて処理がされないのかと思っていますが、例えば以下のようにして
$maxage = (Get-Date).AddDays(-90).ToString("M/d/yyyy h:mm:ss tt")
$maxageを実行するとLastUseTime と同じ形式になったので
$maxage 3/8/2018 10:17:37 AM
以下のように実行してもやはり何も起こりません。おそらく時間ではなく文字列などで認識されているのかと思いますが、
これはどのようにすればちゃんと時間として認識して古いプロファイルが削除出来るようになるでしょうか。
$maxage = (Get-Date).AddDays(-180).ToString("M/d/yyyy h:mm:ss tt")
Get-CIMInstance win32_userProfile | where{($_.LastUseTime -lt $maxage)} | Remove-CIMInstance
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/06 08:40
2018/06/07 00:15
2018/06/07 04:11 編集
2018/06/07 09:00