当脚本具有开关时,如何从命令提示符运行PowerShell Invoke命令?

当脚本具有开关时,如何从命令提示符运行PowerShell Invoke命令?,powershell,parameter-passing,powershell-remoting,invoke-command,Powershell,Parameter Passing,Powershell Remoting,Invoke Command,我需要使用命令提示符运行PowerShell脚本(使用-c参数调用PowerShell.exe)。我已经运行了多年,但从未尝试过使用Invoke命令来执行远程处理,当我想要执行的脚本有一个开关时,我必须通过它 这段代码在PowerShell中运行得非常好,PowerShell是一个带有LogRun开关的简单脚本: icm -cn MYCOMPUTER02 {C:\Temp\Write-to-File.ps1 -LogRun $Using:LogRun} 但是,当我使用powershell.ex

我需要使用命令提示符运行PowerShell脚本(使用
-c
参数调用
PowerShell.exe
)。我已经运行了多年,但从未尝试过使用
Invoke命令来执行远程处理,当我想要执行的脚本有一个开关时,我必须通过它

这段代码在PowerShell中运行得非常好,PowerShell是一个带有LogRun开关的简单脚本:

icm -cn MYCOMPUTER02 {C:\Temp\Write-to-File.ps1 -LogRun $Using:LogRun}
但是,当我使用
powershell.exe
通过命令提示符运行它时,失败:

powershell -c "icm -cn MYCOMPUTER02 {C:\Temp\Write-to-File.ps1 -LogRun $Using:LogRun}"
我已经尝试了很多不同的版本,但都不管用,我肯定我遗漏了一些语法细节或引用

如果你能帮我解决这个问题,请告诉我

这是我得到的错误:

icm : The value of the using variable '$using:LogRun' cannot be retrieved because it has not been set in the local session. At line:1 char:1 + icm -cn MYCOMPUTER02{D:\PatV2DU\PatV2DUService20180411120032\Sc ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Invoke-Command], RuntimeException + FullyQualifiedErrorId : UsingVariableIsUndefined,Microsoft.PowerShell.Commands.InvokeCommandCommand icm:无法检索using变量“$using:LogRun”的值 因为它没有在本地会话中设置。 第1行字符:1 +icm-cn MYCOMPUTER02{D:\PatV2DU\PatV2DUService20180411120032\Sc。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidOperation:(:)[Invoke Command],RuntimeException +FullyQualifiedErrorId:UsingVariableIsUndefined,Microsoft.PowerShell.Commands.InvokeCommandCommand
在PS内部运行时,
$Using:LogRun
有意义。从命令行看,它没有意义。那么您该怎么做呢?首先,
$LogRun
是什么?$LogRun是一个开关。例如,您有以下脚本:param([switch]$LogRun)if($LogRun){DoWork}我演示了当您直接从PowerShell使用invoke命令时它是如何工作的,但是当我尝试通过命令提示符运行它时,我找不到传递命令的正确方法,因此它无法正确地传递开关。