Я пытаюсь создать скрипт Powershell, который удаляет с компьютера Windows профиль пользователя, папку пользователя в «C:\Users» и раздел реестра пользователя в «HKLM:\Software\Microsoft\Windows NT\CurrentVersion\ProfileList» — все для любого пользователя, чей профиль неактивен более 90 дней, независимо от конкретных учетных записей администратора или службы.
Причина, по которой мне нужны все три, заключается в том, что я хочу быть уверенным, что этот скрипт удалит с компьютера неактивные профили, включающие как локальные учетные записи, так и учетные записи домена.
Примечание: я стараюсь не использовать групповую политику для достижения своей цели, а использовать только Powershell.
Вот код, который у меня пока не работает:
Get-CimInstance -Class Win32_UserProfile |
Where-Object {(!$_.Special) -and ($_.LastUseTime -lt (Get-Date).AddDays(-90)) -and ($_.SID -notmatch '-500$')} |
Remove-CimInstance -WhatIf
$profiledirectory="C:\Users\"
Get-ChildItem -Path $profiledirectory | Where-Object {$_.LastAccessTime -lt (Get-Date).AddDays(-90) -and ($_.FullName -notmatch 'Administrator|Public|LocalAdmin') }
ForEach-Object{
Get-ChildItem 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\ProfileList' |
ForEach-Object{
$profilepath=$_.GetValue('ProfileImagePath')
if($profilepath -notmatch 'administrator|NetworkService|Localservice|systemprofile|LocalAdmin'){
Write-Host "Removing item: $profilepath" -ForegroundColor green
Remove-Item $_.PSPath -Whatif
Remove-Item $profilepath -Recurse -Force -Whatif
}else{
Write-Host "Skipping item:$profilepath" -Fore blue -Back white
}
}
}
Любые мысли и предложения будут высоко оценены. Спасибо!