anquietas
Goto Top

Transferlaufwerk wöchentlich bereinigen

Hallo zusammen,

Ich möchte ein Netzlaufwerk zur Verfügung stellen, welches als Transferlaufwerk fungiert. (Entlastung des internen Mail Verkehrs)
Damit das Laufwerk nicht als Daten Friedhof benutzt wird, möchte ich alles, bis auf die vorgegebene Struktur löschen, sodass die Nutzer
am Montag Morgen wieder ein sauberes Laufwerk haben.

Jetzt zu meiner Frage.

Wie lösche ich die Daten ohne die Struktur anfassen zu müssen.

Vielleicht hat ja jemand ne schöne Idee

Danke im Voraus

Gruss

Content-ID: 375313

Url: https://administrator.de/contentid/375313

Ausgedruckt am: 26.11.2024 um 12:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 28.05.2018 aktualisiert um 15:15:05 Uhr
Goto Top
Zitat von @anquietas:

Damit das Laufwerk nicht als Daten Friedhof benutzt wird, möchte ich alles, bis auf die vorgegebene Struktur löschen, sodass die Nutzer
am Montag Morgen wieder ein sauberes Laufwerk haben.

Was für eine Struktur? Ornderstruktur? Dateistruktur? Links?

Wie lösche ich die Daten ohne die Struktur anfassen zu müssen.

Wenn Du einach nur die Ordner behalten willst un dalles andere löschen, kannst Du einfach in einer Forschleife alle Elemente in diesem Laufwerk durchgehen und alles was kein ordner ist löschen.

Tipp: https://docs.microsoft.com/de-de/powershell/scripting/getting-started/co ...

lks
emeriks
emeriks 28.05.2018 aktualisiert um 15:16:47 Uhr
Goto Top
Hi,
am einfachsten mit Robocopy.
Du hast den freigebenen Ordner "D:\ShareA" und einen Vorlageordner "D:\TemplateA".
Auf dem Server einen Scheduled Task laufen lassen, z.B. immer Samstags.
robocopy D:\TemplateA D:\ShareA /MIR /B /COPYALL /R:0 /W:0

In TemplateA pflegst Du die Struktur, wie sie aussehen soll. Da kannst Du sogar mit Berechtigungen arbeiten.

E.
StefanKittel
StefanKittel 28.05.2018 um 16:17:48 Uhr
Goto Top
Hallo,

Montag leer scheint auf den 1. Blick ganz praktisch, aber ich würde einfach per Batch alle Dateien löschen die älter als 96 Stunden sind.

Stefan
nomoresecrets
nomoresecrets 28.05.2018 um 17:06:13 Uhr
Goto Top
Ich hab das in Powershell abgebildet, das Script läuft hier jeden Sonntag
# delete all files older than 30 day(s)
$myCleanUpPath = "\\fileserver.example.com\TRANSFER"  
$daysBack = "-30"  

Get-ChildItem $myCleanUpPath -Recurse | Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays($daysBack) } | Remove-Item -Force -Recurse
NetzwerkDude
NetzwerkDude 28.05.2018 um 17:32:03 Uhr
Goto Top
Hier sehr ineffizient, aber ich dachte mach ich schritt für schritt - im Skript wird geschaut wann das letzte mal auf die Files zugegruffen wurde - falls das seit 7 tagen niemand mehr anschaute, dann werden die Files entfernt

$Path = "C:\Users\N-Dude\Desktop\Test"  

#Berechnete Dateieigenschaft: letzen Zugriff (Fileserver muss es aber Unterstützen)
$LastUse = @{
Name = 'Letzter Zugriff vor Tagen'  
Expression= { (New-TimeSpan $_.LastAccessTime).Days }
}

#Hier werden alle Dateien aufgelistet, aber mit der nun berechneten eigenschaft $LastUse
$FileList = Get-ChildItem -Path $Path -Recurse -File | Select-Object FullName, $LastUse

#Nun kannst du die Liste untersuchen und schauen welche Dateien z.B. seit 7 tagen 
$OldFiles = @()
Foreach ($File in $FileList) {
$OldFiles += $File | Where-Object {$_.$LastUse -gt 7}
}

#Alle Dateien die in im Array Oldfiles stehen, entfernen
$OldFiles.Fullname | Remove-Item