我有一个只能同步工作的 powershell 函数。我想更新这个函数,以便我可以并行触发对 Python 脚本的多个调用。有没有人知道如何使用 powershell 异步调用 Python 脚本,记住每个 Python 脚本本质上都是一个 while 循环,直到 24 小时后才结束。powershell 函数接收远程机器、python 虚拟环境、python 脚本的路径和参数。以下是迄今为止所做的工作:function Run-Remote($computerName, $pname, $scriptPath, $pargs){ $cred = Get-QRemote-Credential Invoke-Command -ComputerName $computerName -Credential $cred -ScriptBlock {powershell -c "$Using:pname '$Using:scriptPath' $Using:pargs"} -ConfigurationName QRemoteConfiguration}
1 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
修复非常简单,只需在调用命令中添加“-AsJob”即可。这将使 powershell 为您发送的每个命令启动一个新进程。然后在脚本末尾使用“Get-Job | Wait-Job”等待所有进程完成。和“Get-Job | Receive-Job”来取回任何数据。
我建议阅读有关 powershell 的工作,它们非常有用但不直观。
function Run-Remote($computerName, $pname, $scriptPath, $pargs)
{
$cred = Get-QRemote-Credential
Invoke-Command -AsJob -ComputerName $computerName -Credential $cred -ScriptBlock {powershell -c "$Using:pname '$Using:scriptPath' $Using:pargs"} -ConfigurationName QRemoteConfiguration
}
Get-Job | Wait-Job
添加回答
举报
0/150
提交
取消