Powershell Fehler beim Start von zweitem Process
Hallo zusammen,
ich habe mir ein Scrip geschrieben, das auf das speichern von Excel wartet und dann ein paar Dingen noch abarbeitet.
Das ganze funktioniert wunder bar, wenn Excel nicht gestartet ist.
Wenn Excel bereits gestartet ist bekomme ich beim Start dieses Parameters folgenden Fehler.
Weiß jemand wie man Power Shell dazu bewegen kann auch mehrfach Prozesse zu starten.
Fehlt mir da noch ein Parameter oder ist der Aufruf für den Prozess generell der Falsche ?
Danke
Grüße Torsten
ich habe mir ein Scrip geschrieben, das auf das speichern von Excel wartet und dann ein paar Dingen noch abarbeitet.
Das ganze funktioniert wunder bar, wenn Excel nicht gestartet ist.
Wenn Excel bereits gestartet ist bekomme ich beim Start dieses Parameters folgenden Fehler.
$path2 = "c:\cache\1234.xlsm"
Start-process $path2 -PassThru -Wait
Start-process : Dieser Befehl kann nicht vollständig ausgeführt werden, da das System nicht alle erforderlichen Informationen finden kann.
In D:\SCRIPTE\liste.ps1:34 Zeichen:1
+ Start-process $path2 -PassThru -Wait
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
Weiß jemand wie man Power Shell dazu bewegen kann auch mehrfach Prozesse zu starten.
Fehlt mir da noch ein Parameter oder ist der Aufruf für den Prozess generell der Falsche ?
Danke
Grüße Torsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 308308
Url: https://administrator.de/contentid/308308
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
5 Kommentare
Neuester Kommentar
Hi.
Regards
$ex = New-Object -Com Excel.Application
$ex.Visible = $true
$ex.Workbooks.Open("c:\cache\1234.xlsm")
$ex.WaitForExit()
This cannot work because $ex is an Excel COM object, not a process object!Use get-pocess to filter out the process.
With $ex.hwnd you get the MainWindowHandle ID.
Hallo Torsten,
den zugehörigen Prozess des gestarteten Excel-COM-Object (Variable: $ex) erhältst du so:
Aber besser du machst es so: Statt als Argument das Excel Dokument selber an Start-Process zu übergeben mach es so:
Dann wird jeweils eine neue Excel-Instanz gestartet anstatt eine vorhandene zu kapern.
Grüße Uwe
den zugehörigen Prozess des gestarteten Excel-COM-Object (Variable: $ex) erhältst du so:
get-process | ?{$_.MainWindowHandle -eq $ex.Hwnd}
Start-Process "EXCEL.EXE" -Argumentlist "c:\cache\1234.xlsm" -wait -passthru
Grüße Uwe