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-Key: 375313

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

Printed on: April 25, 2024 at 11:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer May 28, 2018 updated at 13:15:05 (UTC)
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
Member: emeriks
emeriks May 28, 2018 updated at 13:16:47 (UTC)
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.
Member: StefanKittel
StefanKittel May 28, 2018 at 14:17:48 (UTC)
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
Member: nomoresecrets
nomoresecrets May 28, 2018 at 15:06:13 (UTC)
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
Member: NetzwerkDude
NetzwerkDude May 28, 2018 at 15:32:03 (UTC)
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