プロが教えるわが家の防犯対策術!

たとえばコマンドプロンプトから
shutdown -m \\another_machine -s
などとするとanother_machineという別Windowsマシンにて
shutdownを実行することができますが、これと同じように
another_machineのc:\test.batが存在した場合、
これを他のWindowsマシンから実行することはできるでしょうか。
もちろん、\\another_machine\c$test.bat
として自分のマシン上でtest.batを実行するわけではなく、
あくまでanother_machine上で動くことを別Windowsマシンから
命令するだけとなります。

A 回答 (3件)

ANo.2のwarakuniです。



なんだか早とちりしてたみたいですね。
お恥ずかしい。

それでは、rshはどうでしょうか?
もともとUnixのコマンドですが、Windowsでも使用できます。
MicrosoftのサイトからService for Unix(SFU)というツールをダウンロードしインストールするとrshサーバーのサービスが使えるようになるようです。
http://www.microsoft.com/japan/technet/interopmi …

SFUは使ったことがなかったので、ためしに入れてみました。

RSH host_name -L user "dir c:\user\" > dir.log

としてみると、ご希望の動作をしているように思います。

はてなに同様の質問がありました

http://q.hatena.ne.jp/1158764077

ご参考まで。
    • good
    • 0
この回答へのお礼

なるほど、SFUという手がありましたね。
一度使ったことはあったのですが、すっかり忘れていました。
SFU+RSHコマンドを利用してやってみたいと思います。
ありがとうございました。

お礼日時:2007/12/15 01:55

とりあえず、何も難しいことは考えずにコマンドプロンプトでリモート操作を行いたいのであれば、telnetという遠隔操作用のプログラムがWindows2003Serverにはあらかじめ用意されています。



使い方としては、まずサーバー側(リモート操作される側)のtelnetサービスを起動します。
サービスの起動は [コントロールパネル]-[管理ツール]-[サービス]で行うことができます。
その際に、telnetの設定を行う必要があります。

詳しい方法は
http://www.atmarkit.co.jp/fwin2k/win2ktips/216te …
等を参照してください。

なお、調べたところWindows2003 Serverでは、状況によりtelnetがインストールされないことがあるようです。

http://support.microsoft.com/kb/899260/ja

その場合は、[ファイルを指定して実行] から

tlntsvr /service

とすれば立ち上がるはずです。



あとはクライアント側のコマンドプロンプトから

> telnet server_name

としてやれば接続でき、ユーザー名、パスワードの入力でログインできます。
あとは普通のコマンドプロンプトと同じ操作ができます。


ただし、telnetはやり取りされる情報は暗号化されずに全て平文で送られるため、セキュリティの問題が指摘されています。
現在ではあまり使われていないプロトコルだとおもいます。

どのような運用状況かわかりませんので、そのあたりも踏まえて参考にしていただければと思います。

もしセキュリティも考慮したい場合はsshサーバーなどの導入をおすすめします。
Cygwinと言うWindowsでLinuxライクなcui環境を提供するソフトウェアを導入すれば、sshdと言うsshサーバーも入れることができます。

http://www.uhero.info/techinfo/CygwinSSH_setup/


そのほかにもご質問に対する対処方法はいろいろとあると思いますが、ご参考まで。

この回答への補足

すみません、聞きたいことを全部書いていなかったので
このような回答が返ってきてしまっても仕方ないですね。
言葉足らずでした。
現在行いたいことは
特定のサーバのコマンドプロンプトからCやJavaといった言語を
使わずに単純なバッチコマンドで複数のサーバに
一気にプログラム命令を投げることです。

atコマンドを使ってもいいのですが、
「前のコマンドが終わり次第すぐに別の4つのサーバで同時に
以下のコマンドを実行依頼する。」
といったようなことをしたいと思っています。

コマンドプロンプトの中でtelnetを呼ぶと、telnetの画面に
移ってから入力するコマンドを予めバッチコマンドとして登録
できないのでtelnetは使えないかなぁと考えています。

telnet 192.168.1.2 -c dir > dir.log
みたいにして
「telnetで入ったサーバにてdirの結果をdir.logに入れる」
といった感じのことができればいいのですが...

補足日時:2007/12/07 01:58
    • good
    • 0

可能です。



このためには、リモート コマンドを受けるためのサービスと
リモート コマンドを発行するためのプログラムが必要です。

お使いのOSは何でしょうか。

この回答への補足

RPCなどのサービスを使うということでしょうか。
投げ先はWin2003 Server、投げ元はXPもしくはWin2003 Server
となります。
よろしくお願いします。

補足日時:2007/12/06 02:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A