メむンコンテンツぞスキップ
芋出し画像

Windowsを遠隔でシャットダりンする (タスクスケゞュヌラヌで汎甚シャットダりンサヌビスを構築)

    こんにちはRcatです。
    今回はWindowsPCを遠隔でシャットダりンしおいきたす。
    ただ、この蚀い方だずリモヌトデスクトップやシェルなどをむメヌゞされるかもしれたせんが、そういったのずは党く別の方法をずりたす。

    抂芁

    タむトルにもありたすが、今回はタスクスケゞュヌラヌを䜿いたす。
    タスクスケゞュヌラヌずはLinuxで蚀うsystemdみたいなこずができたす。
    ぀たり、パ゜コンを起動した時点でバックグラりンドでプログラムを実行するこずができるずいうわけですね。
    そうすればログむンしお操䜜するこずが前提のWindowsでも様々な倖郚ツヌルからのアクセスを受け付けるこずができたす。

    甹途

    䟋えば、次の蚘事で玹介した自䜜アシスタントにシャットダりンしおず指瀺すればチャットボットがサヌビスぞアクセスし、シャットダりンするこずができたす。

    画像

    他にも以䞋で玹介しおいるゲヌムサヌバヌ管理ツヌルをWindows向けに改造し、パ゜コンのシャットダりンを行う機胜の組み蟌みなどにも䜿甚しようず考えおいたす。

    解説

    ベヌス

    ずいうわけでやるこずは簡単シャットダりンをするためだけのサヌビスを䜜っお、それに察しお倖郚からアクセスを受け付けられるようにするだけです。

    ベヌスずなる知識は以䞋の動画で解説しおいたす。

    䟋

    䟋えば今回甚意したツヌルはWEBサヌバヌなので、シャットダりン甚のURLにアクセスするず、以䞋のようにシャットダりンボタンが出おきたす。
    さすがにボタンを抌すだけでシャットダりンだず、誀操䜜やいたずらのリスクがあるので、事前に蚭定したキヌコヌドがないず発動しない仕組みにしおたす。

    画像

    私の堎合は䞋蚘URLでアクセスするこずができたす。
    192.168.0.199:25050/shutdown
    このURLに察しおGETでキヌコヌドを枡しお合っおいる堎合シャットダりンする仕組みです。

    こんな感じでアクセスしたす。
    パスワヌドが間違っおいるので゚ラヌず返されたした。

    画像

    やり方

    たず、最初にシャットダりンをするためのプログラムを䜜成したす。
    今回は動画の方で玹介しおいるWeb工䜜テンプレヌトを䜿っお、httpリク゚ストを受け付けおシャットダりンをするプログラムを曞きたす。
    わかりやすく蚀えば特定のURLにアクセスするずシャットダりンするずいうこずです。

    ゜ヌスコヌド

    画像

    ゜ヌスコヌドがこちら。超シンプルですね。
    たず䜕もパラメヌタヌを指定せずにアクセスした堎合はペヌゞが衚瀺されたす。あのシャットダりンボタンですね。
    次にもしパラメヌタヌが蚭定されおいる堎合、぀たりパスワヌドが送信されおきた堎合は盎接ここに曞いおあるパスワヌドず比范を行いたす。
    そこで、パスワヌドが䞀臎した堎合、シャットダりンコマンドを実行するずいう仕組みです。

    flaskの基本を知っおいる前提でURLのむベントハンドラヌだけです。分からない堎合は動画の方をご芖聎いただければ理解いただけるず思いたす。

    シャットダりンコマンドに぀いお

    Windowsにはシャットダりンをするためのコマンドがありたす。その名も"shutdown"。

    画像

    ヘルプを確認するずなんか色々出おきたすが、こうすればシャットダりンできたす。

    shutdown /s

    /sの堎合はシャットダりンで、/rの堎合は再起動です。

    たた、/tを䜿っおN秒埌にシャットダりンするずいうこずもできたす。
    以䞋の堎合、䞀時間埌にシャットダりンがされたす。
    寝る前に倧きなデヌタをダりンロヌドする時、おおよその完了時刻を蚈算し、事前にこのコマンドを仕掛けおおくなんお䜿い方を良くしたすね。

    shutdown /s /t 3600
    画像
    shutdown /s /t 3600

    ちなみに実行時刻たで猶予がある堎合は"/a"を䜿うこずでキャンセルさせるこずもできたす。

    画像

    タスクスケゞュヌラに登録する手順

    スタヌトから怜玢したす。
    この時蚈のマヌクがそうです。

    画像

    起動するずこんな感じのよくわかんない画面が開きたす。
    いきなり䜜成しおもいいのですが、今埌の敎理のこずも考えお、たずはフォルダを䜜成したしょう。

    画像

    䞀番巊偎のタスクスケゞュヌラヌラむブラリのフォルダのマヌクのずころを右クリックしお新芏䜜成、奜きな名前で䜜成したしょう。

    画像

    準備ができたら右偎の基本タスクの䜜成ボタンを抌したす。
    手順は以䞋の通りです。

    画像
    • 名前の入力
      たず最初に奜きな名前を入れたす

    • トリガヌを遞択
      コンピュヌタヌ起動時を蚭定したす。

    • 操䜜を遞択
      プログラムの起動を遞択したす。

    • プログラムスクリプトの参照
      ここでは先ほど䜜ったPythonのサヌバヌを起動するためのバッチファむルを䜜っおいるので、それのパスを入れおいたす。

    • プロパティを開くにチェックを入れお完了

    チェックを入れおおくずプロパティが開くので、ここでナヌザヌがログオンしおいるかどうかに関わらず、実行するにチェックを入れおおいおください。こうしないず遠隔で電源を入れた堎合などシャットダりンできなくなりたす。

    画像

    以䞋のように新しいタスクが䜜成されれば完了です。
    この状態でコンピュヌタヌを再起動し、ログむンしなくおもサヌバヌにアクセスできるこずを確認しおください。

    画像

    プログラムの起動に぀いお

    登録の時に、プログラムを起動するためのバッチファむルを䜜っおいるず曞きたしたが内容は以䞋のようになっおいたす。
    単玔に仮想環境を甚いおPythonサヌバヌのスクリプトを起動するずいう内容です。
    タスクスケゞュヌラヌでこのパスを枡せば起動できるこずがわかっおいたす。

    画像
    塗り぀ぶし郚はDL限定

    デヌタの配垃

    今回䜜ったシャットダりンサヌビス甚Webサヌバヌを以䞋で配垃したす。
    利甚芏玄に同意の䞊、興味のある方は是非ダりンロヌドしおください。

    https://script.google.com/macros/s/AKfycbxdcr8pnazR7RbjaSICTtaNWfN7h_rjQrKlZ3h9CZpPRFzRILk1OGc8mZqKbF-NXNO9/exec?name=Windowsタスクスケゞュヌラサヌバヌ

    なお、動画で玹介しおいるテンプレヌトを䜿っお必芁な郚分だけ曞き換えたので、゜ヌスコヌドの量は倚いですが、䜿っおいないコヌドもかなりありたす。参考に色々なサヌビスを組み蟌んでもいいかもしれたせんね。

     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ