如何在 "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
}
我遇到错误
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
}