Function Run-EXE { FOREACH ($RunEXEZeile in $RunEXEListe) { Func-Write-Logfile -LogEintrag "" Func-Write-Logfile -LogEintrag "Starte Ausführung für EXE-Dateien." Write-Host "Folgende Zeilen wurden ausgelesen: --> $RunEXEZeile <--" $RunEXEZeile = ($RunEXEZeile -split "''") $RunEXEZeile = ($RunEXEZeile -split "' '") $RunEXEZeile = ($RunEXEZeile -split "' '") IF ($RunEXEZeile[0] -ne "") { $RunEXEZeile[0] = $RunEXEZeile[0] -replace ("'","") IF ($RunEXEZeile[1] -ne $NULL) { $RunEXEZeile[1] = $RunEXEZeile[1] -replace ("'","") IF ($RunEXEZeile[2] -ne "") { $RunEXEZeile[2] = $RunEXEZeile[2] -replace ("'","") } } IF ((Test-Path -Path "$($RunEXEZeile[0])" -PathType Leaf) -eq "True") { Try { Func-Write-Logfile -LogEintrag "Starte die Datei / das Programm $($RunEXEZeile[0])." $RunEXE = Start-Process "$($RunEXEZeile[0])" -ArgumentList "$RunEXEZeile[1] $RunEXEZeile[2]" -Passthru Wait-Process -ID $RunEXE.Id -Timeout $RunEXETimeout -ErrorAction Stop } Catch { Try { Func-Write-Logfile -LogEintrag "Da der definierte Timeout überschritten wurde ($RunEXETimeout Sekunden), wird nun versucht die Datei / das Programm zu beenden." Stop-Process -ID $RunEXE.Id -Force -ErrorAction Stop } Catch { Func-Write-Logfile -LogEintrag "FEHLER: bei RunEXE die Datei / das Programm - $($RunEXEZeile[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 - $($RunEXEZeile[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 Run-EXE