我正在尝试创建一个 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
}
}
}
任何想法或建议都将不胜感激。谢谢!