win-logo

以前の VeraCrypt のマウント関係の話で、リモートでお手軽にマウントしたいというのが残ってました
フォルダを共有するリモート側でマウントするので、使いたいときに毎回リモートデスクトップでつないで操作という面倒なことはしたくないのです

PowerShell でリモートでコマンド実行ができるらしい、というところまでは調べましたが、事前の設定が色々必要らしく放置中です
フォルダ共有できてればコマンドも実行できたらいいのになーと考えていたら思いついたので作ってみました


やることはかんたんです
フォルダ共有してるパソコンで、あるプログラムを実行します
内容は「指定のパスにファイルがあればそれを実行する」というのを繰り返すだけのものです
指定のパスが共有してるフォルダの中なら別のパソコンから実行するファイルを配置できます

具体的に書くと、「C:\share」というフォルダを共有していたら「C:\share\autorun.bat」というファイルがあるかをチェックして、あれば実行するようにします
別のパソコンから「C:\share」の共有フォルダへアクセスして、そこに「autorun.bat」というファイル名で実行したい bat ファイルを置けば自動で実行してくれます

実行後にも次のコマンドを実行したいかもしれないので、無限ループでチェック&実行をし続けます
そのままだと同じファイルを何度も実行してしまうので、実行が終わったら「autorun.bat.done」のような名前にリネームします
bat ファイルの実行で出力されたメッセージが見れないのは不便なので、出力を「autorun.bat.log」ファイルにリダイレクトします

対話型のコマンドを実行してしまうとそこで止まってしまうのが欠点ですが、そういうのを実行しなければいいので、これは気にしないことにします

今回みたいなマウント・アンマウントみたいな実行するものが事前に決まってると、ダブルクリックだけで済ませることもできそうです
リモートで実行する bat ファイルを用意しておいて、さらにそれらの bat ファイルを「autorun.bat」という名前でコピーする bat ファイルも用意しておきます
あとはコピーする bat ファイルをダブルクリックで実行すれば、コマンドの bat ファイルが実行用のパスにコピーされて自動実行してくれます

とりあえず、この自動実行するプログラムを PowerShell で作ってみました
https://gist.github.com/986b7aa6b6439d164d1a871762fc0dc3