概要

PowerShellでTelnetを使用してサーバーに接続する方法は、PowerShellのネイティブ機能では直接サポートされていません。しかし、外部ツールを利用することでTelnet接続を行うことが可能です。以下に、プランとしていくつかの方法を紹介します。

1. Plink(PuTTYのコマンドラインツール)を使用する方法

PlinkはPuTTYのコマンドライン版で、TelnetやSSHの接続に利用できます。

手順

  1. Plinkをダウンロード

    PuTTYの公式サイトからPlinkをダウンロードし、適当な場所に保存します。

  2. 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

2. ネイティブTelnetクライアントを使用する方法

WindowsにはネイティブのTelnetクライアントがあり、これを使用することも可能です。Telnetクライアントを有効化する必要があります。

手順

  1. Telnetクライアントの有効化 以下のコマンドを管理者権限で実行してTelnetクライアントを有効化します。
dism /online /Enable-Feature /FeatureName:TelnetClient
  1. Telnet接続の実行 以下のようにPowerShellスクリプトでTelnetクライアントを使用します。
# 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接続を行うことが可能です。具体的な使用ケースに合わせて適切な方法を選択してください。