我能够做到
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执行此操作
答案 0 :(得分:1)
根据评论,此错误消息告诉您PowerShell无法知道您尝试使用哪个参数集。参数集是一起使用的参数集合,一些是必需的,一些是可选的。有些cmdlet有一个cmdlet,有些cmdlet有不同的组合,允许它们以不同的方式使用。
您正在使用-ScriptBlock
和-AsJob
。 Invoke-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 }