如何在 "Invoke-Expression" 中使用变量作为命令的参数

How to use variable as an argument for command in "Invoke-Expression"

我遇到错误

Cannot bind argument to parameter 'Command' because it is null. + CategoryInfo : InvalidData: (:) [Invoke-Expression], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.InvokeExpressionCommand + PSComputerName : X

当我尝试使用

$command = "cmd.exe /c $($currentLocation)/Ping.cmd"
Invoke-Command -ComputerName $systemName -credential $credentials -ScriptBlock {Invoke-Expression -Command: $command }

如何使用这样的变量?我有这个要求,所以我不能直接使用它,它需要是动态的。

您可以将 -ArgumentList 参数与 Invoke-Command 一起使用,或者使用 $using: 访问您的变量,如下所示:

Invoke-Command -ComputerName $systemName -credential $credentials -ScriptBlock {
    Invoke-Expression -Command: $using:command
}