Удалить локальные профили пользователей (чисто) за 7 дней - PullRequest
0 голосов
/ 13 мая 2019

Цель - чтобы запускать этот сценарий в расписании задач ежедневно в 00:30, удаляйте локальные профили пользователей более чем на 7 дней (Windows 8.1 не позволяет просто удалить папку пользователя).Сохраняйте локальные профили пользователей в течение 7 дней.

В настоящее время только что запущенный скрипт удаляет все профили после запуска.

Я пытался поиграть с -gt и -lt, но меня смущаетдвойные негативы и т. д.

Get-WmiObject -Class Win32_UserProfile | Where {
    (!$_.Special) -and
    ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddDays(7))
} | Remove-WmiObject

Ожидаемый результат - локальные профили пользователей удалены за 7 дней.Сохранено менее 7 дней.

Фактически - удаляет все локальные профили пользователей на этом компьютере.

1 Ответ

1 голос
/ 13 мая 2019

это один из способов сделать выбор.он использует более интуитивный способ проверки на возраст ... люди часто получают тест -gt / -lt с датами, поэтому я использовал age in days для тестирования.Кроме того, командлеты CIM- * возвращают datetime объекты вместо filetime объектов, которые дают вам командлеты WMI- *.

$Today = (Get-Date).Date
$MaxDaysOld = 7

Get-CimInstance -ClassName Win32_UserProfile |
    Where-Object {
        -not $_.Special -and
        ($Today - $_.LastUseTime).Days -gt $MaxDaysOld
        }

Вы можете передать это по номеру Remove-CimInstance, чтобы удалить указанный профиль.[ ухмылка ]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...