$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
我发现了同样的问题。
我正在通过PS启动Firefox并将过程数据存储在变量中:
$t = Start-Process "C:\Program Files\Mozilla Firefox\firefox.exe" -PassThru
但是,当尝试在其上使用Get-Process或Stop-Process时,我收到此进程不存在的错误。因此,我检查了Firefox中所有活动的进程,但没有一个与该变量中存储的ID匹配的ID。所以我以为我可以只通过ID查找一个进程,但同样找不到任何进程。此外,变量仅包含无效的PID,而没有其他信息(无进程名)。您可能会在屏幕截图中看到该示例。
有人知道为什么会发生这种情况以及如何避免这种情况的提示吗?