Start-Process * -Passthru没有返回正确的PID

问题描述 投票:0回答:1
$app = Start-Process notepad -Passthru
Wait-Process $app.Id

此方法返回错误的PID。我尝试在使用PID启动过程后立即停止该过程,并收到以下错误:

10424Stop-Process:找不到进程标识符为10424的进程。在F:{{Redacted path}} \ Dev_WAS_V85_All_Open.ps1:8 char:13+停止过程<<<< $ app.Id+ CategoryInfo:ObjectNotFound:(10424:Int32)[Stop-Process],ProcessCommandException+ FullyQualifiedErrorId:NoProcessFoundForGivenId,Microsoft.PowerShell.Commands.StopProcessCommand

下面添加了代码。

$pid_id_array = @()
$pid_id_array_index = 0
Set-Location F:\{{Redacted path}}\scripts\windows\BlueZone
Start-Process _clip.bat
$app = Start-Process {{Redacted part of the file name}}_server1.bat -passthru
Wait-Process $app.Id
write-host $app.Id
Stop-Process $app.Id
$app = Start-Process {{Redacted part of the file name}}_server1_FTP.bat -passthru
Wait-Process $app.Id
write-host $app.Id
Stop-Process $app.Id
$app = Start-Process {{Redacted part of the file name}}_server1_DMgr_FTP.bat -passthru
Wait-Process $app.Id
write-host $app.Id
Stop-Process $app.Id
$app = Start-Process {{Redacted part of the file name}}_server1_ISC.url -passthru
Wait-Process $app.Id
write-host $app.Id
Stop-Process $app.Id
$app = Start-Process {{Redacted part of the file name}}_CLI_strings.docx -passthru
Wait-Process $app.Id
write-host $app.Id
Stop-Process $app.Id
$app = Start-Process {{Redacted part of the file name}}_DMgr_CLI_strings.docx -passthru
Wait-Process $app.Id
write-host $app.Id
Stop-Process $app.Id
exit
powershell windows-7-x64
1个回答
0
投票

我发现了同样的问题。

我正在通过PS启动Firefox并将过程数据存储在变量中:

$t = Start-Process "C:\Program Files\Mozilla Firefox\firefox.exe" -PassThru

但是,当尝试在其上使用Get-Process或Stop-Process时,我收到此进程不存在的错误。因此,我检查了Firefox中所有活动的进程,但没有一个与该变量中存储的ID匹配的ID。所以我以为我可以只通过ID查找一个进程,但同样找不到任何进程。此外,变量仅包含无效的PID,而没有其他信息(无进程名)。您可能会在屏幕截图中看到该示例。

有人知道为什么会发生这种情况以及如何避免这种情况的提示吗?

Error sample

© www.soinside.com 2019 - 2024. All rights reserved.