我对使用 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 是否是自动执行这些任务的合适工具,还是我应该使用其他工具?谢谢