PowerShellでTelnetを使用してサーバーに接続する方法は、PowerShellのネイティブ機能では直接サポートされていません。しかし、外部ツールを利用することでTelnet接続を行うことが可能です。以下に、プランとしていくつかの方法を紹介します。
Plink
(PuTTYのコマンドラインツール)を使用する方法PlinkはPuTTYのコマンドライン版で、TelnetやSSHの接続に利用できます。
Plinkをダウンロード
PuTTYの公式サイトからPlinkをダウンロードし、適当な場所に保存します。
PowerShellスクリプトでPlinkを使用 以下のようなスクリプトを作成します。
# Plinkのパスを設定
$plinkPath = "C:\\\\path\\\\to\\\\plink.exe"
# サーバー情報を設定
$server = "サーバーのIPアドレス"
$username = "ユーザー名"
$password = "パスワード"
# コマンドを実行
$command = "ls -l"
$telnetCommand = "$plinkPath -telnet $server -l $username -pw $password $command"
# 結果を表示
Invoke-Expression $telnetCommand
WindowsにはネイティブのTelnetクライアントがあり、これを使用することも可能です。Telnetクライアントを有効化する必要があります。
dism /online /Enable-Feature /FeatureName:TelnetClient
# Telnetセッションを開始
$telnet = New-Object System.Diagnostics.Process
$telnet.StartInfo.FileName = "telnet.exe"
$telnet.StartInfo.Arguments = "サーバーのIPアドレス"
$telnet.StartInfo.RedirectStandardInput = $true
$telnet.StartInfo.RedirectStandardOutput = $true
$telnet.StartInfo.UseShellExecute = $false
$telnet.Start()
# 入力ストリームにコマンドを書き込む
$streamWriter = $telnet.StandardInput
$streamWriter.WriteLine("ユーザー名")
Start-Sleep -Seconds 1
$streamWriter.WriteLine("パスワード")
Start-Sleep -Seconds 1
$streamWriter.WriteLine("ls -l")
$streamWriter.WriteLine("exit")
# 結果を表示
$telnet.WaitForExit()
$telnet.StandardOutput.ReadToEnd()
これらの方法を用いることで、PowerShellからTelnet接続を行うことが可能です。具体的な使用ケースに合わせて適切な方法を選択してください。