Mehrere Ordner mit Batchdatei leeren
Hallo,
ich wollte gerne auf einem PC auf dem mehrere User arbeiten über die Aufgabenplanung eine Batchdatei ausführen lassen, welche in einem gewissen Rhytmus den DOWNLOADS Ordner in den jeweiligen User-Profilen LEERT.
Mit:
wäre das ja möglich, da ich das ganze aber so universell wie möglich halten möchte, und nicht immer die Datei anpassen möchte, wollte ich wissen ob jemand eine Möglichkeit kennt die jeweiligen User-Ordner dann als "Variable" oder ähnliches in die Batchdatei zu schreiben?
ich wollte gerne auf einem PC auf dem mehrere User arbeiten über die Aufgabenplanung eine Batchdatei ausführen lassen, welche in einem gewissen Rhytmus den DOWNLOADS Ordner in den jeweiligen User-Profilen LEERT.
Mit:
@echo off
del /s /q C:\Users\user1\downloads
del /s /q C:\Users\user2\downloads
wäre das ja möglich, da ich das ganze aber so universell wie möglich halten möchte, und nicht immer die Datei anpassen möchte, wollte ich wissen ob jemand eine Möglichkeit kennt die jeweiligen User-Ordner dann als "Variable" oder ähnliches in die Batchdatei zu schreiben?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 53805772506
Url: https://administrator.de/contentid/53805772506
Ausgedruckt am: 21.11.2024 um 12:11 Uhr
5 Kommentare
Neuester Kommentar
Powershell
Gruß siddius
Get-CimInstance Win32_Userprofile | ?{!$_.Special} | %{remove-item "$($_.LocalPath)\Downloads\*" -Recurse -Force -EA SilentlyContinue}
Für solche vorhaben ist ChatGPT inzwischen echt jeden Euro / Franken wert:
Es wird empfohlen, eine Sicherungskopie der Dateien zu erstellen, bevor Sie sie löschen.
Vielleicht kannst Du das Script anpassen, sodass die Daten vorher in ein Share nochmals weggesichert werden? Von dort kannst ja 90 Tage später alles killen, wenn sich kein DAU mehr gemeldet hat ;)
Dieser Code erfordert erhöhte Berechtigungen, um auf die Ordner jedes Benutzers zuzugreifen. Es ist ratsam, den Code mit Administratorrechten auszuführen.
# Holt alle Benutzerprofile
$UserProfiles = Get-WmiObject Win32_UserProfile | Where-Object { $_.Special -eq $false }
# Geht durch jeden Benutzerprofil
foreach ($UserProfile in $UserProfiles) {
$DownloadsPath = Join-Path $UserProfile.LocalPath 'Downloads\*'
# Prüft, ob der Pfad existiert
if (Test-Path $DownloadsPath) {
try {
# Entfernt alle Dateien und Unterordner
Remove-Item -Path $DownloadsPath -Recurse -Force -ErrorAction Stop
Write-Output "Erfolgreich geleert: $DownloadsPath"
} catch {
Write-Error "Fehler beim Leeren von: $DownloadsPath. Grund: $_"
}
}
}
Es wird empfohlen, eine Sicherungskopie der Dateien zu erstellen, bevor Sie sie löschen.
Vielleicht kannst Du das Script anpassen, sodass die Daten vorher in ein Share nochmals weggesichert werden? Von dort kannst ja 90 Tage später alles killen, wenn sich kein DAU mehr gemeldet hat ;)
Dieser Code erfordert erhöhte Berechtigungen, um auf die Ordner jedes Benutzers zuzugreifen. Es ist ratsam, den Code mit Administratorrechten auszuführen.