bitboy
Goto Top

Powershellscript bricht ab?

Hallo zusammen,

ich habe im Moment ein Problem dem ich nicht recht auf die Spur komme.
Per scheduled task wird ein Powershell script ausgeführt. Das klappt alles soweit.
In dem Script ist ein Copy job (copy-item) der ein paar Stunden braucht, der Befehl wird auch ausgeführt.
Allerdings scheint das script nach dem Befehl einfach nicht weiter zu machen.

Was ich schon versucht hab:
- Alle im Task definierten Beendigungen nach x stunden abgeschaltet
- Try catch block um den Befehl gebaut allerdings ohne Error


Nach dem Befehl wird einfach nur ein Texteintrag in einer Log erstellt. Die Einträge die vorher ins Log geschrieben werden funktionieren natürlich.

Danke und Gruß

Content-ID: 585310

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

Ausgedruckt am: 09.11.2024 um 01:11 Uhr

emeriks
emeriks 06.07.2020 um 09:47:45 Uhr
Goto Top
Hi,
  1. es wäre hilfreich, wenn Du das geheimnisvolle Script zumindest in den relevanten Teilen hier zeigen würdest.
  2. Du könntest im Script an erster Stelle das Transcript-Log aktivieren. Dann könntest Du u.U. anhand der aufgezeichneten Bildschirmausgaben nachvollziehen.

E.
NordicMike
NordicMike 06.07.2020 um 11:19:15 Uhr
Goto Top
Vielleicht wird der Copy Befehl nicht fertig?!? Hast du alle Optionen/Schalter gesetzt, damit keine Interaktion stattfinden muss (z.B. wenn die Frage auftaucht ob überschrieben werden darf)?
Bitboy
Bitboy 10.07.2020 um 09:35:50 Uhr
Goto Top
Danke für die Antworten. Das mit dem Transcript Log versuch ich mal.

Der Code sieht entsprechend unspannend aus. Dachte auch, dass der Copy irgendein Problem hat und hab deswegen das try-catch gemacht, aber der catch teil wird nicht ausgeführt.

$msg = "`t`tKopiere von $SrcDir nach $destDir`n"  
$msg >> $logfile
$mailBody += $msg

try {
   Copy-Item -Recurse -Path $SrcDir -Destination $destDir -Force
}
catch {
    $msg = $error
    $msg >> $logfile
    $mailBody += $msg
}
$msg = "Kopieren abgeschlossen."  
$msg >> $logfile
mayho33
mayho33 11.07.2020 um 01:53:13 Uhr
Goto Top
Verwende doch einfach Robocopy in deinem PS1.

& Robocopy.exe "source" "destination" /unilog "c:\dein.log"
Vorteil:

Oder mit Start-Process()