+ YOSHIKI & Violet UK FAN SITE -Blind Tears- 管理人の日記 +

Blind Tears管理人こぅきの日記です☆彡
興味ある記事があればコメント・意見等お願いします☆

Windows7でRSHコマンドを実行する

2012年08月28日 19時17分25秒 | PC関連
仕事上で発生した不具合の対応メモ。

------------------------------------------------------------------------

ウチの開発するシステムで、Windows→UNIXのシェルを実行するというものがあるのですが、
Windows7で動作しないとの問合せがあり、調査した際のメモです。


Windows→UNIXのシェルを実行する際に、RSHコマンドを使用していたのですが、
WindowsXPには標準搭載されているものの、Windows7では(正確にはVista以降では)
標準搭載されておらず、SUA(Subsystem for Unix Application)の導入が必要です。

※SUAに関する詳細は下記ページ参照。
UNIX ベース アプリケーション用サブシステムの概要


で、これをインストールして、RSHコマンドを実行してみると、しばらくレスポンスが返ってこない・・・

挙句の果てに、”select: protocol failure in circuit setup”なんていうエラーが返ってきた。。


ネットを色々調べてみたけど、なかなか見つからなかったので、メモ書きをしておこうと思いました。

結論から書くと、ファイアウォールの例外設定を追加することが必要で、
ここからがなかなか解決できなかったのですが、ポートではなく、プログラムを指定する必要がありました。

例外設定するプログラムがコチラ:
 %SystemRoot%\System32\psxss.exe



XPのRSHコマンドは、ポート固定だったと記憶しているのですが、
ネット上で検索して見つかったポート:1022を指定するだけではダメで、
SUAに搭載されているRSHコマンドは、使用するポートが動的に変化するために
このプログラムを例外として追加する必要があったのです。。
※ネットワークキャプチャすると確かに101x~102xを、コマンド発行毎に動的に使用していました。

いや~長かった。。レアな使い方なのか、なかなか情報ないし、
それらしき質問の投稿が見つかっても解決に至ってないスレッドばっかなんだもん。。


※例外設定の手順詳細は、下記の通り。
1. スタート→コントロールパネルを選択。
2. “Windows ファイアウォール"を選択。
3. スコープペインのツリーから"受信の規則"を選択。
4. "新しい規則"を選択。
5. 「規則の種類」にてラジオボタン"プログラム"を選択し、[次へ]ボタンを選択。
6. 「プログラム」にてパスに"%SystemRoot%\system32\psxss.exe"と入力し、
  [次へ]ボタンを選択。
7. 「操作」にてラジオボタン"接続を許可する"を選択し、[次へ]ボタンを選択。
8. 「プロファイル」にて通信を行うネットワークに対しチェックを入れ、[次へ]ボタンを選択。
9. 「名前」にて"RSH"(任意)と入力し、[完了]ボタンを選択。