Как назвать сессии Python из скрипта Powershell? - PullRequest
0 голосов
/ 07 марта 2019

Я выполняю несколько процессов Python асинхронно из PowerShell, но я не могу различить их, что может вызвать проблемы, когда я хочу завершить процесс. Поэтому я хотел бы иметь возможность добавлять уникальный идентификатор для каждого из процессов. Есть ли простой способ сделать это?

Я пробовал следующее:

    $cred = Get-QRemote-Credential
    $TimeOut = New-PSSessionOption -IdleTimeoutMSec (New-TimeSpan -Days 7).TotalMilliSeconds
    $sessionID = "processID rhun"
    Invoke-Command -ComputerName $computerName -Credential $cred -ScriptBlock {powershell -c "$Using:pname '$Using:scriptPath' $Using:pargs"} -InDisconnectedSession -SessionName $sessionID -SessionOption $TimeOut -ConfigurationName QRemoteConfiguration

1 Ответ

1 голос
/ 07 марта 2019

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

...