treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

バッチでリモートアシスタンス招待ファイル生成を簡略化

リモートアシスタンスはWindowsの標準機能なのでいざというときにPCをリモート操作する際に活躍してくれます。
ただ、接続までの準備がちょっと手間、バッチファイルでちょっと簡単にしてみようと思ったのでご報告です。

招待ファイルの作成がユーザの負担=ちょっとした不便

リモートアシスタンスは前回<Windows10でリモートアシスタンスを使う>で実行したようなウィザードの操作をユーザ側で実行しないと、ユーザのPCにサポートしたい人がアクセスすることが出来ません。最低限、招待ファイルを生成するための操作はユーザ側で覚えないといけないわけです。

ただ、ユーザによっては、リモートアシスタンスの招待を作成するための操作自体ができない、ということもあるようで、ここを何とか簡素化できないかと考える出来事がありました。

msraはコマンド?

msraを単体で実行するとウィザードが起動するのですが、コマンドで実行できないもんでしょうか?と思って、コマンドプロンプトで実行してみたら、しっかりとヘルプ(コマンドオプション)が用意されていました。

f:id:treedown:20201125174455p:plain
これはなかなかに、いろいろとカスタマイズ出来そうです。

そうだバッチファイルにしよう。

バッチ化して、「PASSWORD」というパスワードで開始し、例えば「\\192.168.1.1\Share」フォルダに招待ファイルを保存します。※この辺は後で本番環境で使うのであれば、きちんとした値に変更する必要がありますが。

--------------------------------------------------------------
コマンド
--------------------------------------------------------------
Msra.exe /saveasfile \\192.168.1.1\Share\RA.msrcIncident PASSWORD
--------------------------------------------------------------

これだけ。
共有フォルダにさえお互いがアクセスできれば、この一行のバッチ(というかコマンド)を実行してくれるだけで、パスワードを電話などでやり取りする必要もなく、招待ファイルがパスワード込みで入手可能になります。

でも人に実行してもらうことを考慮して、もうちょっと考えてみることにします。

  • その1:日付情報なんかをファイル名に付けると一意性があっていいかも。

生成をやり直した場合や、セッションを再度接続し直す必要が出た場合、ファイルがゴッチャにならないのではないかと思いました。

この場合、
>echo %date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
と実行すると「YYMMDDHHmm」と年月日時分の数字を付加できます。
これをファイル名に付加すれば上書き保存ダイアログも出ないようになってユーザも手間が一つ減ります。

  • その2:ファイル名にコンピュータ名が付加されていたほうが分りやすい(どのコンピュータにアクセスするかが分るから)

コンピュータ名を把握していれば接続ファイルに記載されていることで分りやすくなりますし、把握していない場合でもコンピュータ名が付加されていたほうが見やすいかと考えました。
そこで、生成する.msrcIncidentファイル名に環境変数%COMPUTERNAME%を付加すればいいかと。

作成したバッチファイルは適当なファイル名(今回はmsra_make.batというファイル名)で保存しておきます。

バッチファイルの内容は後述します。

バッチを実行してみる

バッチを実行すると、ちょっと時間は掛かりましたが、指定した共有フォルダに招待ファイルを生成し、指定した簡単パスワード「PASSWORD」でリモートアシスタンスが待ち受け状態になるところまでは自動化できました。

f:id:treedown:20201125174725p:plain
これで「msraを実行してください。」とか「生成したファイルを○○に置いてください。」とか「画面に表示されているパスワードを教えてください。」とかのやり取りは不要になります。前回の<Windows10でリモートアシスタンスを使う>の手順を最初から一気にスキップして待ち受け状態まで持って行けることが分りました。

実際に接続するタイミングで、リモート操作される側のPC画面に「接続を許可しますか?」の画面は表示されるので、ここからスタートすることになります。
リモート操作に必要な許可も必要になりますが、最初の手間が省けただけでも御の字。

バッチファイル

実際に作ってみたバッチファイルは下記。「@echo off」以降をコピーして適当なファイル名(今回はmsra_make.batというファイル名)で保存して使用します。

バッチファイル中の「\\192.168.1.1\Share」とか「PASSWORD」だけは自分の環境に合わせて修正する必要がありますが、その他は特に修正も必要なく他の環境でも使えそう。

--------------------------------------------------------------
バッチファイル
--------------------------------------------------------------
@echo off

rem ------------------------------
rem ユーザ変更箇所
rem ------------------------------
rem 招待ファイルの保存先共有フォルダパスとパスワード
set RADIR=\\192.168.1.1\Share
rem ベースファイル名(以下+コンピュータ名+日時となります)
set bname=RA
set PASSWD=PASSWORD
rem ------------------------------
rem コマンド実行時の年月日時分を二桁づつで10桁表記
set Todaynow=%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
rem 実際に生成する招待マニフェストファイル情報の生成
set RAFILENAME=%RADIR%\%bname%_%COMPUTERNAME%_%Todaynow%.msrcIncident

rem 基本Msra.exe /saveasfile \\192.168.1.1\Share\RA.msrcIncident AAAZZZ
Msra.exe /saveasfile "%RAFILENAME%" %PASSWD%

set Todaynow=
set RADIR=
set bname=
set RAFILENAME=
set PASSWD=

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