8
0
Skriptentwickung/archive/Modules/Start-CMD-withLogging.psm1
2024-01-24 16:42:38 +01:00

74 lines
8.0 KiB
PowerShell
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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