Hallo zusammen,
ich habe rund um PowerShell keinerlei Erfahrungen, soll aber ein Skript basteln das den Datenschutz unterstützt. Ein bisschen bekomme ich hin, scheitere aber offensichtlich recht zügig.
Die Ordnerstruktur ist in etwa Folgende:
\\server\private\{Benutzername}\Kundendaten\{Kundennummer}(\beliebige Unterordner)
Das Skript soll je Benutzer und Kunde das aktuellste Änderungsdatum anzeigen, um schnell feststellen zu können ob Daten länger als 6 Monate nicht mehr angerührt wurden.
In einem ersten Schritt habe ich versucht alle Kundennummern-Ordner zu bekommen und zu speichern:
$Folders = gci "\\server\private\testuser\Kundendaten\" | Where-Object{($_.PSIsContainer)}
Lasse ich die Ordner ausgeben stimmt es auch, es werden keine Datein gelistet
In einem zweiten Schritt habe ich versucht in einem Ordner inklusive Unterordner das aktuellste Datum zu bekommen, das war auch nicht schwer (rekrusiv, nur Dateien, Änderungsdatum holen, absteigend sortieren, nur erstes Ergebnis:
gci "\\server\private\testuser\Kundendaten\1\" -recurse | Where-Object{!($_.PSIsContainer)} | select FullName | sort-object -property @{Expression={$_.LastWriteTime}; Ascending=$false} | select-object -First 1Soweit auch kein Problem
Nun habe ich versucht beides mit einer foreach Schleife zu verbinden:
Hier hätte ich jetzt erwartet das er je Ordner das aktuellste Datum und den Pfad anzeigt, aber das ist nur halb der Fall: Die Ordner werden korrekt angezeigt, aber als Tabellenüberschirft, und das Änderugnsdatum bleibt leer. Ich vermute das ich nicht den Inhalt, sondern die Überschirften angepasst habe. Kann mir da jemand helfen$Folders = gci "\\server\private\testuser\Kundendaten\" | Where-Object{($_.PSIsContainer)}
ForEach ($Folder in $Folders) {
gci $Folder.Fullname -recurse | Where-Object{!($_.PSIsContainer)} | select FullName | sort-object -property @{Expression={$_.LastWriteTime}; Ascending=$false} | select-object -First 1 | format-Table LastWriteTime, $Folder.Fullname
}