Invoke-Command AsJob参数设置不起作用

时间:2017-06-26 15:35:21

标签: powershell batch-file ansible

我能够做到

Invoke-Command -ScriptBlock { Z:\prog.bat }

但是,当我这样做时

Invoke-Command -ScriptBlock { Z:\prog.bat } -AsJob

我一直在

Invoke-Command : Parameter set cannot be resolved using the specified named parameters. At line:1 char:1 + Invoke-Command -ScriptBlock { z:\prog.bat } - ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Invoke-Command], ParameterBindingException + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.InvokeCommandCommand

我的目的是在后台运行Z:\ Prog.bat,因为我将通过Ansible执行此操作

1 个答案:

答案 0 :(得分:1)

根据评论,此错误消息告诉您PowerShell无法知道您尝试使用哪个参数集。参数集是一起使用的参数集合,一些是必需的,一些是可选的。有些cmdlet有一个cmdlet,有些cmdlet有不同的组合,允许它们以不同的方式使用。

您正在使用-ScriptBlock-AsJobInvoke-Command有相当多的参数集,为了让您调用这些参数,您需要将它们与以下参数之一一起使用:

  • -Session
  • -ComputerName
  • -ConnectionUri
  • -VMId
  • -VMName
  • -ContainerID

E.g:

Invoke-Command -ScriptBlock { Z:\prog.bat } -AsJob -Computername SomeComputer

或者,如果您只是尝试在本地计算机上将脚本块作为后台作业运行,请不要使用Invoke-Command而是考虑使用Start-Job

Start-Job { Z:\prog.bat }