batman00
Goto Top

Mit Powershell Dateien löschen jedoch die ersten Verzeichnisse stehen lassen

Ich hab mal eine Frage - jedoch keien Idee.

Ich möchte das Transferlaufwerk der User jeden Monat löschen lassen - da die das immer vergessen.
Die haben also ein Laufwerk "Tranfer" und darunter hat jeder Mitarbeiter sein Verzeichnis wo er Daten reinkopieren darf.

Jetzt möchte ich den Inhalt der Verzeichnisse der Mitarbeiter löschen - jedoch nicht die Verzeichnisse der Mitarbeiter - damit die diese nicht wieder neu erstellen müssen. Habt ihr da eine Idee?
Die Verzeichniss der Mitarbeiter haben natürlich auch Unterverzeichnisse welche gelöscht werden sollten.

Content-Key: 140003

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

Printed on: April 23, 2024 at 13:04 o'clock

Member: CaptainChaos
CaptainChaos Apr 07, 2010 at 08:28:18 (UTC)
Goto Top
du könnest z.B. alle Dateien die älter als 30 Tage alt sind löschen, vielleicht genügt dir das ja schon

(PowerShell)
$Heute = Get-Date
Get-Childitem 'Verzeichnis eines Mitarbeiters' -recurse | Where-Object {($Heute - $_.LastWriteTime).Days -gt 30} | Remove-Item
Member: 5t8d1e
5t8d1e Apr 07, 2010 at 08:43:31 (UTC)
Goto Top
Hallo,

wenn ich dich richtig verstanden habe müßte das ungefähr so aussehen:

 
#listet alle Ordner im aktuellen Verzeichnis
$a = gci .\* | where {$_.psisContainer -eq $True}
#durchläuft alle angegeben Ordner und löscht alle Objekte unterhalb
foreach ($b in $a) {Remove-Item $b\* -Recurse}


grüße Torsten
Mitglied: 77559
77559 Apr 07, 2010 at 10:07:53 (UTC)
Goto Top
Hier als Alternative ein Einzeiler:
Get-ChildItem X:\Transfer | Where {$_.PSIsContainer} | Foreach { Get-ChildItem $_.pspath | Remove-Item -recurse -whatif }

Wenn die ausgabe korrekt erscheint die -whatif Option entfernen.

Gruß
LotPings
Member: batman00
batman00 Apr 07, 2010 at 11:00:14 (UTC)
Goto Top
Super. Das flutscht!
Sagt mal - könnt ihr mir ein gescheites Buch über PowerShell empfehlen?
Member: 5t8d1e
5t8d1e Apr 07, 2010 at 11:30:54 (UTC)
Goto Top
Hallo,

für Einsteiger ist "Scripting mit WindowsPowershell" von Tobias Weltner gut geeignet. ISBN 978-3-86645-620-4. Desweitern ist auch "PowerShell-Scripting für Administratoren" für Fortgeschrittenen zu empfehlen ist auch von Tobias Weltner.

schau einfach bei www.microsoft-press.de rein, dort soll auch demnächst ein v2 Buch für Einsteiger erscheinen.

grüße
Torsten

ps.: t.weltner gibt auch kurse, hatte einen im Januar besucht und ist für Einsteiger wirklich empfehlenswert.
Member: BrinkMan
BrinkMan Apr 08, 2010 at 08:07:52 (UTC)
Goto Top
Hi,

das klingt ja nach dem was ich suche face-smile
Gibt es auch eine Möglichkeit in dem Unterverzeichnisse einige Ordner aus zulassen, die nicht gelöscht werden sollen?

Löscht das skript auch leere Verzechnise?

Gruss
Hoai
Member: 5t8d1e
5t8d1e Apr 08, 2010 at 11:47:07 (UTC)
Goto Top
Ahoi,

ja es geht, hier der "Einzeiler" dazu. Ich persönlich würde es aber in ein Skript packen, weil irgenwann wird es unübersichtlich.

Get-ChildItem $pwd | Where {$_.PSIsContainer} | where {$_.Name -notmatch "Nutzer3|Nutzer1" } | Foreach { Get-ChildItem $_.pspath | Remove-Item -recurse -whatif }  
hier werden die Ausnahmen für die Ornder in 1.Ebene gemacht

where {$_.Name -notmatch "Nutzer3|Nutzer1" }

Wichtig ist das das sobald es z.B. Ordner mit der Nutzer1, Nutzer11, Nutzer3 und Nutzer34 etc. gibt , werden dies ausgelassen.
Ich hoffe meine Erklärung war verständlich.

leere Verzeichnise werden hier auch gelöscht.

Grüße
Torsten

Post scriptum: das entfernen von -whatif nicht vergessen face-wink
Member: BrinkMan
BrinkMan May 04, 2010 at 13:47:04 (UTC)
Goto Top
Hi Danke und sorry das ich jetzt erst Anworte, aber das hier ist was untergegangen.
Werde es mal testen

Grüsse
Hoai
Member: Philipp711
Philipp711 Feb 06, 2012 at 15:10:37 (UTC)
Goto Top
Hallo!

werden bei diesem Skript auch unterordner gelöscht?? Wenn ich den Threat weiter verfolge werde ich daraus nicht 100%ig schlau...

Sagen wir meine Struktur wäre "C:\Verzeichnis\Ordner_1\text.txt"

Wenn ich bei deinem Skript das "Verzeichnis eines Mitarbeiters" durch "C:\Verzeichnis" ersetzte, wird dann auch der Ordner "Ordner_1" gelöscht oder nur die "text.txt"???

Danke !!!!