我正在嘗試建立一個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
}
}
}
任何想法或建議將不勝感激。謝謝!