你有没有考虑过使用 -AsJob 跟踪流程的参数?
-AsJob
invoke-command -scriptblock {$tmp = Get-ChildItem ".\"} -asjob -jobname "pid3" -computer localhost | out-null invoke-command -scriptblock {$svc = get-service} -asjob -jobname "pid1" -computer localhost | out-null invoke-command -scriptblock {ping google.com} -asjob -jobname "pid2" -computer localhost | out-null get-job Id Name PSJobTypeName State HasMoreData Location Command -- ---- ------------- ----- ----------- -------- ------- 3 pid3 RemoteJob Completed True localhost $tmp = Get-ChildItem ".\" 5 pid1 RemoteJob Completed True localhost $svc = get-service 7 pid2 RemoteJob Running True localhost ping google.com
该 -JobName 参数允许您为进程创建名称。您可以使用 Remove-Job 删除已完成或失败的进程。您可以使用 Stop-Job 停止它们。 Get-Job 允许您跟踪已启动的作业的状态。
-JobName
Remove-Job
Stop-Job
Get-Job
如果您喜欢使用交互式会话,则可以输入远程PSSession并在那里开始工作。
看到 about_Remote_Jobs 了解更多可能性。