Powershell viele Ordner über Netzwerk löschen
Guten Abend zusammen,
steh gerade vor einem massiven Problem mit powershell bei Windows 10.
In einer Ordner Struktur sollen diverse Ordner und das nicht gerade wenig gelöscht werden.
Das war mein Ansatz aber das geht nur immer mit einem Ordner.
Die Anzahl kann von null bis in die 1000 gehen.
Hoffe ihr könnt mir helfen.
Besten Dank
steh gerade vor einem massiven Problem mit powershell bei Windows 10.
In einer Ordner Struktur sollen diverse Ordner und das nicht gerade wenig gelöscht werden.
$lw ="w"
$pfad ="\\server1\data
$folders = "Ordner1" , "Ordner2"
New-PSDrive –Name “$lw” –PSProvider FileSystem –Root “$pfad”
$lw:
Remove-Item $folders -Recurse -Force -WhatIf
Remove-PSDrive -Name $lw
Das war mein Ansatz aber das geht nur immer mit einem Ordner.
Die Anzahl kann von null bis in die 1000 gehen.
Hoffe ihr könnt mir helfen.
Besten Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 719144916
Url: https://administrator.de/contentid/719144916
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
17 Kommentare
Neuester Kommentar
Moin,
sollen ALLE Ordner unterhalb von \\server1\data geleert werden?
Wenn Ja, sollen die Ordner dann bestehen bleiben oder mit entfernt werden?
Ggf hilft dir das hier dann:
Hilfe findest du hier ganz gut:
https://www.itechguides.com/powershell-delete-folder-or-file/
Gruß
em-pie
sollen ALLE Ordner unterhalb von \\server1\data geleert werden?
Wenn Ja, sollen die Ordner dann bestehen bleiben oder mit entfernt werden?
Ggf hilft dir das hier dann:
$pfad = "\\server\data"
Get-ChildItem $pfad -Recurse | ForEach { Remove-Item $_.FullName -Force -Recurse }
Hilfe findest du hier ganz gut:
https://www.itechguides.com/powershell-delete-folder-or-file/
Gruß
em-pie
Na dann packe deine Ordner in ein Array und arbeite mit "foreach"
oder du liest eine Spezielle Datei aus, in der alle Ordner enthalten sind und fackelst das dann so ab.
$pfad = "\\server\data"
$folders = @("Ordner1", "Ordner2", "Ordner8")
foreach($fld in $folders){
Write-Host $pfad + "\" + $fld
Remove-Item $pfad$fld -Force -Recurse -WhatIf
}
oder du liest eine Spezielle Datei aus, in der alle Ordner enthalten sind und fackelst das dann so ab.
Servus.
Oder ohne extra Schleife mit -Include
bzw. gleich mit Auslesen der Ordnernamen aus einer Textdatei
Und noch eine Variante
Grüße Uwe
Oder ohne extra Schleife mit -Include
$pfad = '\\server1\data'
$folders = 'Ordner1', 'Ordner2'
del $pfad\* -Include $folders -recurse -force -verbose
$pfad = '\\server1\data'
$folders = gc 'd:\folders.txt'
del $pfad\* -Include $folders -recurse -force -verbose
$pfad = '\\server1\data'
$folders = gc 'd:\folders.txt'
ls $pfad -Directory -Force | ?{$_.Name -in $folders} | del -Force -recurse -Verbose
Moin,
klingt irgendwie nach Hausaufgabe
Also fehlen Informationen, haben die zu löschenden Ordner eine bestimmte (eindeutige) Namensstruktur oder (eindeutigen) Inhalt? Oder ein bestimmtes Erstellungs- oder Änderungsdatum oder sonst ein Kriterium, was sie von den zu behaltenden Ordnern unterscheidet?
Erst dann kann man überhaupt mit der Wahl der Mittel anfangen.
Gruß
cykes
klingt irgendwie nach Hausaufgabe
Die Anzahl [Ordner] kann von null bis in die 1000 gehen.
Die m.M.n viel entscheidendere Frage wäre, anhand welcher Kriterien werden die zu löschenden Ordner ausgewählt? Du willst ja nicht >1000 Ordnernamen in ein Array oder eine Textdatei abtippen oder?Also fehlen Informationen, haben die zu löschenden Ordner eine bestimmte (eindeutige) Namensstruktur oder (eindeutigen) Inhalt? Oder ein bestimmtes Erstellungs- oder Änderungsdatum oder sonst ein Kriterium, was sie von den zu behaltenden Ordnern unterscheidet?
Erst dann kann man überhaupt mit der Wahl der Mittel anfangen.
Gruß
cykes
Moin,
<OT>
bei einem Update deines Posts bekommen wir nicht mit, dass du ihn aktualisiert hast. Wenn du einen Test ankündisgt und später dann das Ergebnis mitteilst, besser als neue Antwort posten
</OT>
Zu deinem Problem: Bitte poste einmal dein Script und (Auszugsweise) die folder.txt
Obige Ansätze haben hier bei mir funktioniert 8 Ordner unter c:\test 5 in der folder.txt und gelöscht wurden auch nur diese.
<OT>
bei einem Update deines Posts bekommen wir nicht mit, dass du ihn aktualisiert hast. Wenn du einen Test ankündisgt und später dann das Ergebnis mitteilst, besser als neue Antwort posten
</OT>
Zu deinem Problem: Bitte poste einmal dein Script und (Auszugsweise) die folder.txt
Obige Ansätze haben hier bei mir funktioniert 8 Ordner unter c:\test 5 in der folder.txt und gelöscht wurden auch nur diese.
Obige Ansätze haben hier bei mir funktioniert 8 Ordner unter c:\test 5 in der folder.txt und gelöscht wurden auch nur diese.
Dito bei mir ebenso problemlosDemo auch online
https://tio.run/##PYvBCsIwEETv@YqlFAJiKtVe/QB/w2RKS1dXNql@fgx76OXNDLz5yA ...
<OT>
Moin ihr "Profi-Scripter",
lange kann ich Mich nicht mehr zurückhalten!
Ist es für den Lernerfolg wirklich Hilfreich, wenn man einem User die Arbeit abnimmt?
Wäre es nicht von Vorteil, erst zu schauen wo steht der User und wo sind seine Wissenslücken?
Ich freue mich schon auf den nächsten Beitrag des Users "Hab hier ein Powershell-Script das geändert werden muss."
Gruß
C.C.
</OT>
Moin ihr "Profi-Scripter",
lange kann ich Mich nicht mehr zurückhalten!
Ist es für den Lernerfolg wirklich Hilfreich, wenn man einem User die Arbeit abnimmt?
Wäre es nicht von Vorteil, erst zu schauen wo steht der User und wo sind seine Wissenslücken?
Ich freue mich schon auf den nächsten Beitrag des Users "Hab hier ein Powershell-Script das geändert werden muss."
Gruß
C.C.
</OT>
Zitat von @148656:
lange kann ich Mich nicht mehr zurückhalten!
Solltest du vielleicht mal öfters . Zu viele Off-Topics nerven auf die Dauer auch.lange kann ich Mich nicht mehr zurückhalten!
Ist es für den Lernerfolg wirklich Hilfreich, wenn man einem User die Arbeit abnimmt?
Ein Forum kann auf mehrfache Weise hilfreich sein, man kann auch anhand von Beispielen lernen, wenn man willens ist. Ob das der TO ist liegt nicht in unserem Einflussbereich.Wäre es nicht von Vorteil, erst zu schauen wo steht der User und wo sind seine Wissenslücken?
Kannst du gerne machen, dann landet aber jeder Thread bei mind. 20 Posts.Ich freue mich schon auf den nächsten Beitrag des Users "Hab hier ein Powershell-Script das geändert werden muss."
Es zwingt dich keiner zu antworten. Es reicht wenn mind. einer aus einer Antwort hilfreiches Wissen ziehen kann. Ob das der TO tut oder nicht liegt in seinem Einflussbereich. Nachschlage-Fähigkeit lege ich als Grundvoraussetzung an wenn man eine Frage in einem Admin-Forum stellt.Grüße Uwe
Und für die Lernwilligen unter den TOs poste ich immer gerne meine Linksammlung
Powershell Leitfaden für Anfänger
Pflichtlektüre
- Kapitel 1: Erste Schritte mit PowerShell
- Kapitel 2: Das Hilfesystem
- Kapitel 3: Entdecken von Objekten, Eigenschaften und Methoden
- Kapitel 4: Einzeiler und die Pipeline
- Kapitel 5: Formatierung, Aliase, Anbieter, Vergleich
- Kapitel 6: Flusssteuerung
- Kapitel 7: Arbeiten mit WMI
- Kapitel 8: PowerShell-Remoting
- Kapitel 9: Funktionen
- Kapitel 10: Skriptmodule
- Anhang A: Hilfesyntax
Erweiterte Grundlagen
- Alles, was Sie schon immer über Arrays wissen wollten
- Alles, was Sie schon immer über Hashtabellen wissen wollten
- Was Sie schon immer über PSCustomObject wissen wollten
- Alles, was Sie schon immer über die Variablenersetzung in Zeichenfolgen wissen wollten
- Alles, was Sie schon immer über die IF-Anweisung wissen wollten
- Alles, was Sie schon immer über die switch-Anweisung wissen wollten
- Alles, was Sie schon immer über Ausnahmen wissen wollten
- Alles, was Sie schon immer über $null wissen wollten
- Alles, was Sie schon immer über ShouldProcess wissen wollten
- Verwenden von Erweiterung mit der TAB-TASTE
Zusätzliche Ressourcen
Moin Uwe,
um es abzukürzen.
Gruß
C.C.
um es abzukürzen.
Solltest du vielleicht mal öfters
Nö, weilEs reicht wenn mind. einer aus einer Antwort hilfreiches Wissen ziehen kann.
Gruß
C.C.