klanax
Goto Top

PowerShell-Löschvorgang funktioniert nur manuell, nicht per Script

Hallo an alle!

Im Rahmen meiner Datensicherung benenne ich den Ordner aus der letzten Sicherung auf dem Netzwerkshare zunächst um, indem ich den Text "ALT_" vor die Ordnerbezeichnung setzte.
Danach erstelle die neue Datensicherung
Und danach lösche ich den zuvor umbenannten Ordner.

Hierfür benutze ich folgenden Befehl:
Get-ChildItem -Path "\\NETZWERKSHARE\ALT_*" | Remove-Item -Force -recurse

Wenn ich den Befehl an der Konsole absetze, wird der Ordner auch gelöscht.

Aus der PS1-Datei heraus funktioniert das nicht.
Alle anderen Befehle (Umbenennen, Kopieren, usw.) funktionieren aber.

Hat jemand eine Idee, was die Ursache sein könnte?

Vielen Dank im Voraus.

klanax

Content-ID: 5425726668

Url: https://administrator.de/forum/powershell-loeschvorgang-funktioniert-nur-manuell-nicht-per-script-5425726668.html

Ausgedruckt am: 22.12.2024 um 16:12 Uhr

5175293307
Lösung 5175293307 17.01.2023 aktualisiert um 11:28:52 Uhr
Goto Top
Aus der PS1-Datei heraus funktioniert das nicht.
Hast du die Powershell ExecutionPolicy überhaupt schon angepasst, so das Powershell Skript-Dateien ausgeführt werden dürfen?

Von wo wird die PS1 ausgeführt? Taskplaner? Dann fehlen evt. Rechte zum löschen wenn diese über den falschen Account ausgeführt wird welcher keine Rechte auf dem Share besitzt, oder es Unterordner oder Dateien für die die Rechte fehlen.

Als erstes würde ich zusätzlich zur Sicherheit noch auf Ordner einschränken, das nur nebenbei:
Get-ChildItem -Path "\\SERVER\SHARE\ALT_*" -Directory | Remove-Item -Force -recurse  

Zum Debugging warum es nicht geht lass dir doch einfach mal ein Log schreiben was passiert wenn du die PS1 ausführen lässt
Start-Transcript -Path "D:\temp\mylog.txt"  
Get-ChildItem -Path "\\SERVER\SHARE\ALT_*" -Directory | Remove-Item -Force -recurse  
Stop-Transcript

Gruß wurstel
klanax
klanax 17.01.2023 um 16:09:12 Uhr
Goto Top
Hallo wurstel!

Vielen Dank für deine schnelle Reaktion und auch die kompetenten Tipps.

Der Parameter "-Directory" war die Lösung. Damit funktioniert der Löschvorgang.

Viele Grüße

klanax