Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Start-Process gibt tlw. keinen ReturnCode aus (PowerShell)

Mitglied: mayho33

mayho33 (Level 2) - Jetzt verbinden

26.01.2014, aktualisiert 28.03.2014, 5370 Aufrufe, 4 Kommentare, 1 Danke

Hallo @ All!

Irgendwie stehe ich wieder mal am Schlauch und hoffe wieder auf tatkräftige Starthilfe!

Hier mein Problem:

Ich rufe eine Exe auf via: $RC = (Start-Process -FilePath <Irgend eine exe> /s -PassTru)
-Wait gebe ich absichtlich nicht an ich will nämlich, dass in der PS-Console sowas wie ein Fortschrittsbalken läuft. das mache ich so:

do {
write-host "*" -NoNewLine
if ($RC.ExitCode -gt -1) { Break}
Start-Sleep 1
} until ($RC.ExitCode -gt -1)

write-host ("ExitCode: + $RC.ExitCode)


Jetzt kommt es vor, dass entweder die Schleife nicht beendet wird obwohl der ExitCode sicher 0 oder höher ist, oder der ExitCode ist $null.
mit -Wait bekomme ich natürlich immer eine ExitCode, da habe ich aber auch keine Fortschrittsbalken. Den will ich aber unbedingt haben, weil einige EXEn und MSIs ziemlich groß sind und entsprechend lange brauchen.


Hat jemand ne Idee wie ich da eine saubere und vor allem sichere Lösung zustande bekomme??

Danke!

Mayho
Mitglied: colinardo
27.01.2014, aktualisiert um 01:01 Uhr
Hallo Mayho,
Schau dir mal dieses Mulithreading-Beispiel an:
https://www.administrator.de/forum/powershell-gui-bleibt-w%C3%A4hrend-ei ...
Würde den Prozess in einen parallelen Thread verlagern worin du dann mit -wait auf den Prozess wartest und dann den Exit-Code an den Hauptthread übergibst. Gerade bei MSI-Dateien ist es so das die Shell auf das Ende von msiexec warten sollte, denn sonst kommt es zu dem Phänomen das ein falscher Exit-Code ausgegeben wird (das liegt daran das msiexec ursprünglich nicht als Konsolenanwendung ausgelegt worden ist)

Was auch eine Möglichkeit wäre ist das CMDlet Start-Job mit dem sich so was realisieren ließe. Melde mich dazu nochmal...

Bis dahin ...
Grüße Uwe
Bitte warten ..
Mitglied: colinardo
LÖSUNG 27.01.2014, aktualisiert 10.02.2014
Noch ein Beispiel wie du es machen kannst:
Grüße Uwe
Bitte warten ..
Mitglied: mayho33
29.01.2014, aktualisiert 10.02.2014
Hi Uwe!

Danke für die beiden Beispiele! Werde das mal in ner ruhigen Minute durchgehen. Multithreading habe ich noch nicht bedacht. Finde das ist eine tolle Idee.

Danke!

Mayho

EDIT

Hi Uwe!

nun hatte ich endlich Zeit das in meinen Code einzubauen.

Das zweite Beispiel von dir hat wunderbar geklappt ohne groß was anpassen zu müssen. Das Resultat ist wie gewünscht eine Progressanzeige in der Console. Auch die Returncodes kommen wie sie sollen.

Perfekt!! Vielen Dank!

Was habe ich daraus gelernt? Bei Problemen Uwe fragen :P

lg

Mayho!
Bitte warten ..
Mitglied: MPascalau
15.08.2015 um 18:46 Uhr
Ich habe vor lange Zeit gelesen, dass PowerShell mit ExitCode Eigenschaft von Process ein Problem hat.
Die Erklärung war viel zu Kompliziert, und ich habe vergessen.

Ich habe das Problem so korrigiert:
function Get-ProcessExitCode {
[CmdletBinding()]
param(
[parameter(Mandatory=$true, ValueFromPipeline=$true)]
[System.Diagnostics.Process]$Process)
Begin {
$private:type = [System.Diagnostics.Process]
$private:prop = $private:type.GetProperty("ExitCode")
}
Process {
return $private:prop.GetValue($Process)
}
}

$RC.WaitForExit() # Wait for process to finish!
$exitcode = Get-ProcessExitCode $RC # Get the ExitCode
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell start-process
gelöst Frage von Cougar77Batch & Shell4 Kommentare

Guten Morgen, ich habe da ein kleines Problem, das ich nicht ganz verstehe. Es geht um ein kleines Powershell-Skript, ...

Batch & Shell

Powershell start-process cmd mit Parametern

gelöst Frage von mschaedler1982Batch & Shell4 Kommentare

Hallo zusammen, wahrscheinlich wieder nur ein kleines Problem Ich will aus PowerShell einen start-process Befehl abschicken unter cmd funktioniert ...

Batch & Shell

Powershell Fehler beim Start von zweitem Process

gelöst Frage von iceboxyzBatch & Shell5 Kommentare

Hallo zusammen, ich habe mir ein Scrip geschrieben, das auf das speichern von Excel wartet und dann ein paar ...

Batch & Shell

Powershell-ISE - Buggy? Start-Process cmd - mit anderen Credentials

Frage von Raaja89Batch & Shell8 Kommentare

Hallo zusammen, ich habe folgenden Befehlt: Als Get-Credential wird ein Benutzer mit Admin Rechten benutzt Warum funktioniert dieser Befehl ...

Neue Wissensbeiträge
iOS

iOS-Bug unterbindet vollständiges VPN-Tunneling

Information von transocean vor 1 TagiOS

Moin, seit dem letzten Update hat iOS für iPhone und iPad ein Problem mit der Verschlüsselung. Lest selbst. Grüße ...

Sicherheit
Corona Malware über manipulierte Router
Information von sabines vor 1 TagSicherheit

Heise berichtet über Malware, die in Zusammenhang zum Suchethema Corona steht und über DNS Einstellungen bei D-Link und Linksys ...

Windows 10
Windows 10 Update KB4535996 fehlerhaft
Information von Frank vor 1 TagWindows 101 Kommentar

Laut Microsoft ist das Update KB4535996 die Ursache für aktuelle Verbindungsprobleme bei Virtual Private Networks (VPNs). Microsoft arbeitet bereits ...

Administrator.de Feedback
Entwicklertagebuch: Der neue Ticker ist da
Information von admtech vor 1 TagAdministrator.de Feedback3 Kommentare

Hallo User, mit dem aktuellen Release haben wir den neuen "Ticker" zur Seite hinzugefügt. Oben im Hauptmenü findet ihr ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
Hilfe bei der Einrichtung vom QNAP Nas Server
gelöst Frage von Chris.21SAN, NAS, DAS18 Kommentare

Hallo, ich benötige Hilfe bei der Einrichtung meines neuen NAS Servers von QNAP. ich möchte eine Verbindung vom Internet ...

Drucker und Scanner
OCR Erkennung auf Server
Frage von KodaCHDrucker und Scanner14 Kommentare

Guten Morgen Bisher habe ich einen HP LaserJet Pro MFP M426fdw. Da es nicht viele Dokumente zum Scannen gibt ...

Router & Routing
Vigor 165 vs. Fritzbox 7590
Frage von servilianusRouter & Routing13 Kommentare

Liebe Fachleute, bisher betreibe ich folgende Konstellation Büro: 50.000er-Leitung VDSL Telekom -> Fritzbox 7590 Exposed Host -> Vigor Draytek ...

Windows Server
MS Server 2019 Berechnung Lizenzen Check
gelöst Frage von anteNopeWindows Server10 Kommentare

Hallo zusammen, ich bräuchte nur kurz eine Bestätigung meiner Berechnung und mache es deshalb kurz: 1x Server, 1 Sockel, ...