Скрипт Powershell полностью удаляет профиль пользователя, папку пользователя и раздел реестра пользователя для неактивных учетных записей

Скрипт Powershell полностью удаляет профиль пользователя, папку пользователя и раздел реестра пользователя для неактивных учетных записей

Я пытаюсь создать скрипт 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
            }
        }
    }

Любые мысли и предложения будут высоко оценены. Спасибо!

решение1

Я бы переписал это так:

delprof2 /d:60

Thedelprof2Инструмент доступен для отдельной .exeзагрузки.

Связанный контент