質問: (Get-Date).AddDays(-180).ToString("M/d/yyyy h:mm:ss tt") Get-CIMInstance win32_userProfile | where{($_.LastUseTime -lt $maxage)} | Remove-CIMInstance 宜しくお願い致します。
回答: こんにちは。 `Win32_UserProfile`クラスの`LastUseTime`プロパティは`Datetime`型なので無理にフォーマット変換する必要はありません。 最初に示された、 ``` # where内のカッコが怪しい... Get-CIMInstance win32_userProfile | where{($_.LastUseTime -lt $(Get-Date).Date.AddDays(-180))} | Remove-CIMInstance ``` のカッコの付け方が怪しいので、 ``` Get-CIMInstance win32_userProfile | where { $_.LastUseTime -lt $((Get-Date).Date.AddDays(-180)) } ``` の様にして対象オブジェクトが取得できるか確認してください。 取得できれば後ろに ``` | Remove-CIMInstance ``` をつけてプロファイルを削除してください。 【補足】 ちなみに、`LastUseTime`プロパティは実行ユーザーの権限によっては取得できず`$null`になる場合があります。 上記回答に関して`LastUseTime`プロパティは正しく取得できる前提です。 もし、`LastUseTime`プロパティが取得できていない場合は「管理者として実行」してください。