我想在PowerShell中调用Start-Job。这样做时,它会生成一个带有以下参数的后台PowerShell:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Version 5.0 -s -NoLogo -NoProfile -EncodedCommand [encoded command I want to run in base64]
然而,无论我发送什么命令,powershell命令似乎永远无法完成。
我尝试像这样生成一个powershell实例:
powershell.exe -s
这似乎创建了一个看起来被冻结的实例,不执行任何操作。在网上搜索,我似乎找不到关于-s参数的任何参考。
有人知道它是什么或如何消除它,以便我的start-jobs正常工作吗?
编辑:可能-s是-sta的简写,但是使用-sta我的命令不会冻结,但使用-s会。
编辑2:我后来发现,-s是-ServerMode的简写,显然是Legacy Powershell 2.0选项。我不知道为什么在使用Start-Job时会添加该选项。
编辑3:我使用的命令是:
$deploymentsJobs += Start-Job -InitializationScript { SomeSmallFunction } (AnotherFunction) -ArgumentList $arg1, $arg2, $arg3}