Das Terminal-Server Cleanup bzw. aufräumen ist leider notwendig, um den Server von unnötigem Ballast zu befreien.
Hier ist eine Sammlung verschiedener Skripts und PowerShell Snippets, um Wartungsarbeiten auf Terminalservern zu erleichtern.
Download-Ordner aller Benutzer aufräumen
nur Downloads, die älter als 30 Tage sind:
Get-ChildItem C:\Users\*\Downloads\* | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
unbegrenzt:
Get-ChildItem C:\Users\*\Downloads\* | Remove-Item -recurse -force -ErrorAction SilentlyContinue
Alte Benutzer-Profile vom Server löschen
Hier möchte ich auf ein Skript von http://woshub.com/delete-old-user-profiles-gpo-powershell/ verweisen. Angepasst habe ich Zeile 3, die sonst einen Fehler liefert.
Dieses Skript löscht das Profil eines Kontos, sofern die letzte Anmeldung länger als 60 Tage zurückliegt.
Mittels $ExcludedUsers
lassen sich bestimmte Konten von der Löschung ausschließen.
#The list of accounts, which profiles must not be deleted
$ExcludedUsers ="Public","zabbix_agent","svc",”user_1”,”user_2”
$LocalProfiles=Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and (!$_.Loaded) -and ($_.LastUseTime -lt (Get-Date).AddDays(-60))}
foreach ($LocalProfile in $LocalProfiles)
{
if (!($ExcludedUsers -like $LocalProfile.LocalPath.Replace("C:\Users\","")))
{
$LocalProfile | Remove-WmiObject
Write-host $LocalProfile.LocalPath, "profile deleted” -ForegroundColor Magenta
}
}
(wird sicherlich noch erweitert….)