lupolo
Goto Top

PowerShell Script Move-Item nach x Tagen

Hallo,

ich versuche Dateien von von Ordner "Neuer Ordner" auf einen Netzwerk Pfad zu verschieben Das Script soll aber nur Dateien verschieben, welche älter wie 5 Tage sind. Die Dateien

Get-ChildItem -Path 'C:\Users\USER\Desktop\Neuer Ordner\'  -Recurse |  
  Where-Object {$_.LastWriteTime -lt (Get-date).AddDays(-5)} |
  Move-Item -destination '\\NAS\LOGs\FOLDER\'  

Ich führe den das Script in der ISE aus - hier wird mir aber nur der Code angezeigt.

Könnte mir da jemand kurz einen Denkanstoß geben?

Beste Grüße
lupo

Content-ID: 323115

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

Ausgedruckt am: 25.11.2024 um 04:11 Uhr

131381
131381 07.12.2016 aktualisiert um 14:32:56 Uhr
Goto Top
Ich führe den das Script in der ISE aus - hier wird mir aber nur der Code angezeigt.
Das ist völlig normal weil du die Dateien nur verschiebst, da erfolgt keinerlei Ausgabe bei dieser Aktion face-smile. Willst du so etwas hängst du den Parameter -verbose bei Move-Item an.

Get-ChildItem -Path 'C:\Users\USER\Desktop\Neuer Ordner\' -Recurse
Sei dir im Klaren das du damit auch etwaige Ordner verschiebst nicht nur Dateien und da bräuchtest du den Parameter -Force bei Move-Item. Willst du nur "Dateien" berücksichtigen entweder
Get-ChildItem -Path 'C:\Users\USER\Desktop\Neuer Ordner\' -Recurse -File  
oder
Get-ChildItem -Path 'C:\Users\USER\Desktop\Neuer Ordner\' -Recurse | ?{!$_.PSIsContainer}  
benutzen.

Gruß
lupolo
lupolo 07.12.2016 um 14:45:27 Uhr
Goto Top
Hi mikrotik,

ah dank dir ich hab gerade Tomaten auf den Augen gehabt. Funktioniert alles.

Danke dir!
lupolo
lupolo 07.12.2016 um 15:00:41 Uhr
Goto Top
Noch eine Frage:

Kann ich in das gleiche PS Schript einfügen, dass er den Zielordner aufräumt? Also die LOGS auf dem NAS sollten dann nach 10 Tagen gelöscht werden.
#Daten von Exchange auf NAS verschieben (Daten, älter wie 1 Tag)
Get-ChildItem -Path 'C:Logs' -Recurse |  
  Where-Object {$_.LastWriteTime -lt (Get-date).AddDays(-1)} |
  Move-Item -destination '\\NAS\LOGs\SOPOS_PureMessage'  
  
#Löscht alle Daten, welche älter wie 10 Tage sind
Get-ChildItem '\\NAS\LOGs\SOPOS_PureMessage' -Directory |   
    Get-ChildItem -Include '*.log' -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-10) |   
    Remove-Item

Weil das macht er leider nicht
131381
131381 07.12.2016 aktualisiert um 15:31:23 Uhr
Goto Top
Weil das macht er leider nicht
Wundert mich nicht wirklich ...
#Löscht alle Log-Daten, welche älter wie 10 Tage sind
gci '\\NAS\LOGs\SOPOS_PureMessage\*.log' -recurse -File | ?{$_.LastWriteTime -lt (Get-Date).AddDays(-10)} | remove-item -Force -verbose  
lupolo
lupolo 07.12.2016 um 15:39:38 Uhr
Goto Top
dank dir