$remoteinst = "\Windows\Temp\MyFolder"
$remotecomp = ComputerName
$remotesess = New-PSSession $remotecomp
$remotedir = "C:" + $remoteinst + "\Install.cmd"
Invoke-Command -Session $remotesess -ScriptBlock {$remotedir}
我正在尝试在远程计算机上运行Install.cmd文件。我意识到我无法通过Enter-PSSession传递命令,但我正在努力解决这个问题。
答案 0 :(得分:1)
无需创建显式会话:您可以将目标计算机名称直接传递给Invoke-Command -ComputerName <computerName>
。
调用名称/路径存储在变量中的命令需要调用操作符&
。
传递给Invoke-Command -ComputerName ...
的脚本块是远程执行,因此您无法直接在其中使用 local 变量;在PSv3 +中,解决此问题的最简单方法是使用using
范围:$using:<localVarName>
记住所有这些要点,我们得到:
$remoteinst = "\Windows\Temp\MyFolder"
$remotecomp = ComputerName # Note: This syntax assumes that `ComputerName` is a *command*
$remotedir = "C:" + $remoteinst + "\Install.cmd"
Invoke-Command -ComputerName $remoteComp -ScriptBlock { & $using:remotedir }
答案 1 :(得分:0)
将cmd /c
添加到批处理文件路径的前面。