Рассматривали ли вы использование параметра -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
позволяет отслеживать состояние запущенных заданий.
Если вам нравится использовать интерактивные сеансы, вы можете войти в удаленный сеанс PSSession и начать работу там.
См. about_Remote_Jobs для получения дополнительных возможностей.