VBS отправить пароль SSH в Windows PowerShell - - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь создать скрипт для автоматического подключения к SSH.У меня есть переменные со всеми параметрами SSH (имя пользователя, пароль, порт, ip).

Если я запускаю, в сценарии VBS:

Set objShell = CreateObject("Wscript.shell")
objShell.run("powershell -noexit ssh.exe " & user & "@" & ip & " -p " & port & "")

PowerShell открывается правильно и спрашивает пароль сервера ... но

Как я могу отправитьпароль в VBS скрипте?У меня есть переменная «pass» с паролем сервера (SSH).

Пожалуйста, помогите мне, я попробовал много решений, но это не работает.

Я попытался с:

objShell.run("powershell -noexit & ssh.exe " & user & "@" & ip & " -p " & porta & "; " & pass &"")

objShell.run("powershell -noexit ssh.exe " & user & "@" & ip & " -p " & porta & " + " & pass &"")

с ";"скрипт передал пароль, но не отправляет его, когда ssh задает мне пароль.

Кроме того, я хотел бы задать очевидный вопрос, почему бы не написать все это в powershell?

У меня уже есть сценарий в VBS, и я хочу изменить только строку подключения (теперь отлично работает с cygwin).

Зачем вообще запускать его из PowerShell?Просто запустите ssh.exe напрямую.Или даже проще, просто запустите команду ssh непосредственно из командной строки PowerShell (PowerShell - это оболочка; она может запускать вводимые вами команды - это одна из причин ее существования).

Я должен запустить powershell изскрипт и отправьте пароль SSH автоматически (я не хочу вводить пароль вручную).

1 Ответ

0 голосов
/ 31 мая 2018

Как насчет выполнения скрипта Powershell?

param([String]$Pass,[String]$User)
$ErrorActionPreference = "Continue"

$secpasswd = ConvertTo-SecureString $Pass -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($User, $secpasswd)

Теперь вы можете использовать переменную $ credential для подключения к SSH (я не знаю, как, я никогда не пробовал SSH из Powershell).

...