wmicを利用したリモートでのコマンド実行 rdpでのシングル操作が基本となるが、コマンド化できるところはどんどんやったほうがいいと思う。 ただ、厳密に言うとサーバ側に配置されているコマンドが記述されたバッチファイルを実行することになる。 Help us understand the problem. dependenciesに以下を追加してください。※2016年12月6日時点での最新版は0.1.54でした。, ほとんど参考にしたコードそのままですが。 リモートで再起動する場合の2つの大きな違いは、資格情報を指定できるか?できないか? です。 「shutdown.exe」の場合は資格情報を指定することができないので、バッチファイルを実行するユーザと再起動するWindows OSのユーザは一致している必要があります。 シェルの戻り値とエラーメッセージは、エラーログに残しておいたりとか、リトライ処理とか追加する場合に使用するといいと思います。, パスワード認証ではなく、鍵認証を行いたいという場合は、このコードでいえば30行目あたりに以下のコードを追加すれば、パスワードと同様に接続をすることができます。, JavaでSSH接続するプログラムを書く必要がある場合は、JSchを使うと覚えておいていただけるとよいかと思います。 はじめに Windowsにて別端末のプログラムを起動する方法を調べたのでまとめておく。 方法1:リモートデスクトップ 方法2:Telnet 方法3:at (タスクスケジューラ) 方法4:schtasks (タスクスケ … Why not register and get more from Qiita? ステップ実行したいJavaファイルもこのディレクトリに置いています。 2行目. REMOTE_DEBUG変数にJavaコマンド実行時に与えるリモートデバッグ用の引数をセットしています。 3行目 Javaクラス「Debug」を実行する部分です。 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. ここでは、 Javaでリモートのサーバのシェルスクリプトを実行する、という処理を書く機会がありました。 そのタスクを任意のタイミングで呼び出すことでプログラムを実行する。, WMIC自体はさまざまなWindows の状態を取得出来るツールなので、 Javaのプログラム内から他のプログラムを実行させたいようなときもあります。そんなときはどうすればいいのでしょうか?今回は例をもとにプログラムの内部から外部のプログラムを実行する方法をご紹介します。また、ファイルの指定など注意点もご紹介します。 -------------------------------------------------------------------------------, "Windows Management Instrumentation (WMI)", https://technet.microsoft.com/ja-jp/sysinternals/pxexec.aspx, PsExec v2.1 – All Network Communication Is Now Encrypted, Tech TIPS:PsExecを使ってリモートのWindows PC上のプログラムを実行する - @IT, How to execute a batch file on a Remote pc using a batch file on local PC, [コントロールパネル] の [プログラム] - [プログラムと機能] から [Windowsの機能の有効化または無効化] をクリック, ファイアウォールにて "スケジュールされたリモート タスク管理" グループを有効化, 英語版ならgroup名は "Remote Scheduled Tasks Management", ファイアウォールにて "Windows リモート管理 (HTTP 受信)" を有効化, 英語版なら規則名は "Windows Remote Management (HTTP-In)", ファイアウォールにて "Windows Management Instrumentation (WMI)" グループを有効化, Stack Overflow の回答でも一番多い回答がこのPsExecを利用する方法, 標準で入っていないのでタイトルと合わないが、Windows純正のソフトでダウンロードするだけで利用できる, ローカルファイルをコピーすると同時にリモート実行など、他に無いちょっとクールな使い方もできる, you can read useful information later efficiently. 例としてリモート端末の単純なバッチC:\Remote\run_batch.batを起動する状況を考える。, 22番ポートはTelnetサーバインストール時に開放されていると思うので、 特定のWindows OSのパソコンから、他のWindowsOSを搭載しているパソコンに再起動したい場合があります。その場合、リモートデスクトップで接続して手動で再起動をおこなう方法をとる場合が多いかと思いますが、バッチファイルひとつで実行可能にすると便利です。, クライアントとサーバの両方がWindows10、クライアントとサーバの両方がWindowsServer2012、の組み合わせでは確認できています。, Windows10とWindowsServer2012や、その他WindowsOSの組み合わせは試していませんが、たぶん以下に説明するバッチで正常に動作すると思います。, リモートからバッチファイルを使って再起動することができるコマンドは2つあります。shutdown.exe と WMIC です。, Windowsに標準格納されている再起動用の実行ファイル。リモートで再起動する場合は、再起動するOSの資格情報(ID・パスワード)は指定できない。, WMI(Windows Management Instrumentation)は、Windows OSにおけるシステム管理のための共通アーキテクチャ。再起動だけではなく、Windows OSを操作する様々なコマンドを使用することができる。リモートで再起動する場合は、再起動するOSの資格情報(ID・パスワード)が指定できる。, リモートで再起動する場合の2つの大きな違いは、資格情報を指定できるか?できないか?です。, 「shutdown.exe」の場合は資格情報を指定することができないので、バッチファイルを実行するユーザと再起動するWindows OSのユーザは一致している必要があります。しかし、WMICをつかった方法は、バッチファイル内で資格情報を指定できるので、同じユーザでのログインは不要です。, リモートのWindows OSを再起動するための、WMICを使ったバッチファイルは以下になります。, 上記のバッチファイルを実行することで、「SERVER_REBOOT」に定義したIPのWindows OSを再起動することができます。「USER」「PASS」には、再起動するWindows OSのIDとパスワードを指定します。, WMICのコマンドは多機能なので、詳細はMicrosoftのマニュアルを参照して頂きたいのですが、ポイントとしては「Win32Shutdown 6」の部分です。「6」は強制再起動なのですが、このパラメータを変更することで、強制再起動以外の操作も可能です。, 説明分はMicroSoftのサイト(英文のみ)の文章をGoogle翻訳で訳して記載しているだけですので、日本語が少しおかしい部分があります。, exit関数を呼び出したプロセスのセキュリティコンテキストに関連付けられているすべてのプロセスが停止し、現在のユーザーがシステムからログオフされ、ログオンダイアログボックスが表示されます。, ユーザーをコンピューターからすぐにログオフし、ログオンセッションが終了することをアプリケーションに通知しません。, 安全に電源を切れるところまでコンピュータをシャットダウンします。 (すべてのファイルバッファーがディスクにフラッシュされ、実行中のすべてのプロセスが停止します。)ユーザーにメッセージが表示されます。コンピューターの電源をオフにしても安全です。, シャットダウン中、システムは実行中の各アプリケーションにメッセージを送信します。アプリケーションは、メッセージの処理中にクリーンアップを実行し、Trueを返して、終了できることを示します。, 強制シャットダウンアプローチを使用すると、WMIを含むすべてのサービスがすぐにシャットダウンされます。このため、リモートコンピューターに対してスクリプトを実行している場合、戻り値を受け取ることはできません。, 強制再起動アプローチを使用すると、WMIを含むすべてのサービスがすぐにシャットダウンされます。このため、リモートコンピューターに対してスクリプトを実行している場合、戻り値を受け取ることはできません。, コンピュータをシャットダウンし、電源をオフにします(問題のコンピュータでサポートされている場合)。, 強制電源オフのアプローチを使用すると、WMIを含むすべてのサービスがただちにシャットダウンされます。このため、リモートコンピューターに対してスクリプトを実行している場合、戻り値を受け取ることはできません。, 都内でSIerをやっています。 第11章 クラスタシステムの環境作成・運用 バッチ実行基盤(Java)をクラスタ環境で使用する場合の概要、環境作成について説明します。 第6部 Interstage以外でのバッチ実行基盤(Java)の使用 第12章 概要(Interstage以外のJavaEE環境) Interstage以外でバッチ実行基盤(Java)を使用する場合の概要につい … Pythonやってみたいです。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。, リモートで再起動する場合の2つの大きな違いは、資格情報を指定できるか?できないか?, 「6」は強制再起動なのですが、このパラメータを変更することで、強制再起動以外の操作も可能, Windows10でFTPサーバを構築して、DOSコマンドで動作確認までおこなう。, MicrosoftProjectでスケジュールを作成する。最低限これさえ覚えれば大丈夫!, クライアント(バッチを実行する方):Windows10、WindowsServer2012. よって消さない限り増えていく。, リモート端末に、開始時間を過去日付に指定したタスクを作成しておき、 https://technet.microsoft.com/ja-jp/sysinternals/pxexec.aspx. wshから、ネットワーク上のコンピュータ システムをリモート管理するオブジェクトを 使用してサーバー上のバッチプログラムを起動する。 問題点 ⇒ 実行ユーザーアカウントにサーバー上の管理者権限が必要. 使い道は、、、そうないかもですが。(TeraTerm使えばいいしな) もっと別の目的で活用してあげたい。, 他でやっているように既存の規則を有効化してやっても良いが、新規にルールを追加すれば後から無効化するのが楽。 // helloworld.batのstdinとstderrを親プロセスのstdinとstderrにつなぐ。, // helloworld.batを子プロセスとして実行し、プロセス実行が終わるまで親スレッドを停止する。, you can read useful information later efficiently. What is going on with this article? Why not register and get more from Qiita? wshから、ネットワーク上のコンピュータ システムをリモート管理するオブジェクトを 使用してサーバー上のバッチプログラムを起動する。 問題点 ⇒ 実行ユーザーアカウントにサーバー上の管理者権限が必要. What is going on with this article? ステム再構築で失敗しない方法, セールスフォースお助け隊ブログ. 実装していたプロジェクトではGradleを使ってましたので、Gradleを使用した場合の方法です。 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. OpenJDK 11; Eclipse 2019-09 (Pleiades All in One) C:\sample というフォルダにhelloworld.batが設置されているとします。内容は次の通りです。 helloworld.bat. Javaでリモートのサーバのシェルスクリプトを実行する、という処理を書く機会がありました。 使い道は、、、そうないかもですが。(TeraTerm使えばいいしな) 考えられるとしたらWebシステムを使ってブラウザからリモー …