ssh 远程执行命令踩坑填坑记
最近笔者部署了两台windows server 2019,想通过远程命令来部署网站程序,既然windows 也支持 ssh,那就用SSH 来远程执行命令,怎么支持远程执行命令可以参考前面的文章 Powershell 通过SSH 执行远程命令
今天要具体讲的是在远程具有正确session的前提下,想执行远程命令去下载一个artifactory 部署包,命令如下,想动态传递一个下载地址过去执行,总是提示Uri 为Null, 给变量$zipFileFullPath加上引号,提示 hostname 不能转换,什么鬼,在这里折腾了半天
本地都可以执行的,怎么这里就传递不过去了呢?于是 hardcode Uri 参数, 接着又报 $distinatination 路径不识别,唉 什么鬼,问题一个接一个。Web-Request你这个坑货,我换成 webclient的方式下载,还是类似的提示,折腾两个小时了,取洗个澡,想着想着觉得不是Uri 传不过去那么简单,而是所有参数都传递不过去,突然想到这个是在远程执行的,跨计算机了,接着查看Invoke-Command 官方文档,确实找到了答案。错怪Web-Request 了。
$zipFileFullPath = "http://xxxx.xxxx.zip"
$distination = ..\Downloads\xxxx.zip
Invoke-Command $session -ScriptBlock { Invoke-WebRequest -Uri $zipFileFullPath - OutFile $distination }
Example 9: Include local variables in a command run on a remote computer
正确的姿势想传递本地变量过去,需要用到$Using:localvariable

浙公网安备 33010602011771号