我需要使用命令提示符运行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