Function Start-CMD { FOREACH ($RunCMDZeile in $RunCMDListe) { Func-Write-Logfile -LogEintrag "" Func-Write-Logfile -LogEintrag "Running specified CMD-Files." Write-Host "Folgende Zeilen wurden ausgelesen: --> $RunCMDZeile <--" $RunCMDZeile = ($RunCMDZeile -split "''") $RunCMDZeile = ($RunCMDZeile -split "' '") $RunCMDZeile = ($RunCMDZeile -split "' '") IF ($RunCMDZeile[0] -gt "") { Write-Host "Erster übergebender Wert: $($RunCMDZeile[0])" $RunCMDZeile[0] = $RunCMDZeile[0] -replace ("'","") IF ($RunCMDZeile[1] -gt "") { Write-Host "Zweiter übergebender Wert: $($RunCMDZeile[1])" $RunCMDZeile[1] = $RunCMDZeile[1] -replace ("'","") IF ($RunCMDZeile[2] -gt "") { Write-Host "Dritter übergebender Wert: $($RunCMDZeile[2])" $RunCMDZeile[2] = $RunCMDZeile[2] -replace ("'","") } } IF ((Test-Path -Path "$($RunCMDZeile[0])" -PathType Leaf) -eq "True") { Try { Func-Write-Logfile -LogEintrag "Now running CMD-File: $($RunCMDZeile[0])." write-host "$($RunCMDZeile[0]) $($RunCMDZeile[1]) $($RunCMDZeile[2])" $RunCMD = Start-Process cmd.exe -ArgumentList "/c $($RunCMDZeile[0]) $($RunCMDZeile[1]) $($RunCMDZeile[2])" -Passthru Wait-Process -ID $RunCMD.Id -Timeout $RunCMDTimeout -ErrorAction Stop } Catch { Try { Func-Write-Logfile -LogEintrag "Da der definierte Timeout überschritten wurde ($RunCMDTimeout Sekunden), wird nun versucht die Datei / das Programm zu beenden." Stop-Process -ID $RunCMD.Id -Force -ErrorAction Stop } Catch { Func-Write-Logfile -LogEintrag "FEHLER: bei RunEXE die Datei / das Programm - $($RunCMDZeile[0]) - kann nicht beendet werden." Func-Write-Logfile -LogEintrag "INFO: Möglicherweise müssen Sie den Computer neustarten!" Func-Write-Logfile -LogEintrag "Programm wird ungeplant beendet." break } } } ELSE { Func-Write-Logfile -LogEintrag "FEHLER: bei RunEXE die Datei / das Programm - $($RunCMDZeile[0]) - kann nicht ausgeführt werden." Func-Write-Logfile -LogEintrag "INFO: Die Datei / das Programm ist nicht vorhanden oder es kann nicht auf sie zugegiffen werden." Func-Write-Logfile -LogEintrag "Programm wird trotzdem fortgesetzt." } } ELSE { Func-Write-Logfile -LogEintrag "FEHLER: bei RunEXE es wurde keine Datei / oder ein Programm zur Ausführung angegeben." Func-Write-Logfile -LogEintrag "INFO: Überprüfen Sie Ihre Konfigurationsdatei!" Func-Write-Logfile -LogEintrag "Programm wird trotzdem fortgesetzt." } } } Export-ModuleMember Start-CMD