• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SSH接続でwindowsサーバのコマンドが実行できません)

SSH接続でWindowsサーバのコマンドが実行できない時の解決方法

このQ&Aのポイント
  • WindowsサーバのSSH接続でコマンド実行できない問題について解説します。
  • WindowsサーバにSSH接続してコマンドを実行する方法について詳しく説明します。
  • Windowsサーバでdirコマンドの引数にファイルを指定する際のエラーについて解決策を提案します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

カレントディレクトリにファイルがないのでしょう。 dirコマンドは内部コマンドなので、command.comかcmd.exeの上で動作します。 SSHで接続した場合に、どこがカレントディレクトリになっているのか不明ですが…… 一連の操作(カレントドライブ、カレントディレクトリの変更、dirコマンドの実行)をするbatファイルを作成して、 そのbatファイルをフルパスで指定してみる…というのはどうでしょうか? # SSHでLinuxに接続したことはありますが、Windowsには接続したことないのでちょっとイメージが…

HEBOTARO
質問者

お礼

私のdirコマンドの引数でのファイルの指定方法に問題があったようです。 以下のようにdirコマンド後のファイル指定で\を3つ続けて\\\にしてみたところうまく動作しました。 <例> C:\\\directory1\\\filename sshで指定する際の特殊文字の解釈の問題だったようです。 最終的にはこのような指定になりました。 ssh -i id_dsa user@sshserver c:/windows/system32/cmd.exe /c dir c:\\\directory\\\filename この方法でうまくいきそうですのでテストしてみます。 どうもありがとうございました。

HEBOTARO
質問者

補足

回答ありがとうございました。まったく見当がつかずに困っていたのですが前進しました。 テストしているWindowsのOpenSSHではWindowsのsshサーバに接続した場合でもカレントディレクトリは接続したユーザのホームディレクトリになります。(実際には"HKEY_LOCAL_MACHINE\SOFTWARE\Cyguns Solutions\Cygwin\mount v2\/home"で指定されたディレクトリに作成される各ユーザディレクトリです。) ここに教えて頂いたように"一連の操作(カレントドライブ、カレントディレクトリの変更、dirコマンドの実行)をするbatファイルを作成して、そのbatファイルをフルパスで指定してみる" という手順で動作いたしました。 <例> ssh -i id_dsa user@sshsever "c:/windows/system32/cmd.exe /c c:/user/test.bat ※test.batの中にdirコマンドとファイル名を記述 しかし、sshクライアントから実行されるコマンドは変更される可能性があるため、本当はWindowsのsshサーバ上にはこのようなファイルを作成して予め配置しなくても実行できるようにしたいと考えています。 Windowsの制限であれば仕方ないのですが、なにかよい方法がございましたらご教授ください。

関連するQ&A