如何在脚本有交换机时从命令提示符运行PowerShell Invoke-Command?

时间:2018-06-15 17:10:01

标签: powershell parameter-passing powershell-remoting invoke-command

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

这段代码非常适合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

0 个答案:

没有答案