【发布时间】:2019-11-19 22:02:35
【问题描述】:
我正在尝试在远程机器上运行我想要的任何命令。示例:gpupdate /force 或将 file1 复制到 file2 等...所以我有这个代码:
$ComputerName = Read-Host "Enter a remote computer name"
$RemoteCommand = Read-Host "Enter a remote command to run: Example gpupdate /force"
$s = New-PSSession -ComputerName $ComputerName
Invoke-Command -Session $s -ScriptBlock {$RemoteCommand}
Invoke-Command -Session $s -ScriptBlock { $? }
它运行没有错误,实际上它返回 TRUE。但是我在 c:\temp 中的文件永远不会被复制到 c:\temp\tmp
为什么不呢?
【问题讨论】:
-
好的,我可以让它工作,但我的命令行不能使用 $variable。如果我硬编码我想在远程机器上运行的东西,它就可以工作。
-
Invoke-Command -Session $s -ScriptBlock {cmd /c dir > c:\temp\dir.txt} # 这个有效 Invoke-Command -Session $s -ScriptBlock {$RemoteCommand} # 这个不工作
标签: invoke-command