PowerShell – это мощный инструмент, который может существенно упростить администрирование Windows. Он предлагает широкие возможности для автоматизации рутинных задач и улучшения производительности системы. В этой статье мы рассмотрим PowerShell скрипт, который удаляет учетные записи Windows с проблемой временного штампа и предоставляет пользователю возможность указать количество дней для хранения профилей. Также можно указать защищенных пользователей, профили которых не будут удаляться. Скрипт удаляет только профили, старше указанного количества дней.
Прежде всего, создадим новый файл с расширением .ps1 и откроем его любым текстовым редактором.
param (
[int]$daysToKeep,
[string[]]$protectedUsers
)
$now = Get-Date
$profileFolder = "C:\Users"
$profiles = Get-ChildItem -Path $profileFolder -Directory | Where-Object { $_.LastWriteTime.AddDays($daysToKeep) -lt $now }
foreach ($profile in $profiles) {
if ($protectedUsers -contains $profile.Name) {
Write-Host "Skipping protected profile: $($profile.Name)"
}
else {
Remove-Item -Path $profile.FullName -Recurse -Force
Write-Host "Deleted profile: $($profile.Name)"
}
}
Давайте разберемся, как работает данный скрипт. Параметры скрипта – количество дней для хранения профилей ($daysToKeep) и список защищенных пользователей ($protectedUsers). Мы используем командлет Get-Date для получения текущей даты и времени, а затем получаем список всех папок в папке профилей пользователей Windows с помощью командлета Get-ChildItem. Далее мы фильтруем этот список, оставляя только те профили, которые старше указанного количества дней.
Затем мы перебираем каждый профиль и проверяем, принадлежит ли он к списку защищенных пользователей. Если да, то выводим сообщение о пропуске защищенного профиля. Если профиль не является защищенным, мы используем команду Remove-Item для удаления папки профиля со всеми ее содержимым.
Чтобы запустить скрипт, откройте PowerShell и перейдите в каталог, где находится файл скрипта. Затем выполните следующую команду:
.\script.ps1 -daysToKeep 30 -protectedUsers "user1", "user2"
Здесь мы указываем, что хотим хранить профили только 30 дней, а пользователи с именами user1 и user2 являются защищенными и не будут удалены.
PowerShell скрипт, о котором мы рассказали в этой статье, может быть полезным инструментом для очистки учетных записей Windows с проблемой временного штампа. Он не только упростит ваше администрирование, но и поможет вам поддерживать чистоту и производительность вашей системы. Надеемся, что этот скрипт будет полезен и поможет вам в повседневной работе с Windows.