Как я могу записать сценарий PowerShell для автоматизации этого набора команд?
Вместо того, чтобы пытаться автоматизировать исполняемый файл telnet, просто создайте сокет и введите команды, прочтите их и примите решения на основе этого. Вот упрощенный пример подключения к моему локальному веб-серверу:
function test() {
$msg = [System.Text.Encoding]::ASCII.GetBytes("GET / HTTP/1.0`r`nHost: localhost`r`n`r`n")
$c = New-Object System.Net.Sockets.TcpClient("localhost", 80)
$str = $c.GetStream()
$str.Write($msg, 0, $msg.Length)
$buf = New-Object System.Byte[] 4096
$count = $str.Read($buf, 0, 4096)
[System.Text.Encoding]::ASCII.GetString($buf, 0, $count)
$str.Close()
$c.Close()
}
Очевидно, вам нужно будет изменить его с порта 80 и передать имя пользователя / пароль вместо заголовка веб-запроса ... но этого должно быть достаточно, чтобы вы начали .
Я бы здесь ничего не делал с сокетами, потому что вам нужно будет реализовать хотя бы часть спецификации telnet. Если я помню, эта спецификация немного забавная. Но здесь перечислены некоторые реализации telnet .NET: C # Telnet Library , которые вы, вероятно, можете адаптировать или использовать непосредственно из PowerShell так же, как Goyuix использует код сокета в своем ответе.