![Powershell 中的 Git pull 以及如何获取命令的输出](https://linux22.com/image/750715/Powershell%20%E4%B8%AD%E7%9A%84%20Git%20pull%20%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BE%93%E5%87%BA.png)
我对使用 PowerShell 进行自动化还很陌生。我想通过 ssh 进入一台机器,并在其中运行 git pull。当我手动通过 powershell 执行此操作时,此方法有效,但当我通过代码自动执行此操作时则无效。我拥有的是:
$Password = "mypsw"
$User = "myusername"
$ComputerName = "computername"
$secpasswd = ConvertTo-SecureString $Password -AsPlainText -Force
$Credentials = New-Object System.Management.Automation.PSCredential($User, $secpasswd)
$SessionID = New-SSHSession -ComputerName $ComputerName -Credential $Credentials
#$result = Invoke-SSHCommand -Index $sessionid.sessionid -Command "ls"
$result.Output # this one works as expected, returns the list of folders and files
$result = Invoke-SSHCommand -Index $sessionid.sessionid -Command "git pull"
$result.Output # this doesn't return anything
如果我不保存 $result 值,我会得到
Host : [myhost]
Output : {}
ExitStatus : 128
它指向一条错误消息。但是,如果我不知道控制台的输出到底是什么,我将永远无法调试它。所以我想我这里有两个问题。
1)如何在我的 shell 中获取远程控制台的真实输出
2)如何使 git pull 工作
还有一个普遍的问题:
PowerShell 是否是自动执行这些任务的合适工具,还是我应该使用其他工具?谢谢