もくじ
→https://qiita.com/tera1707/items/4fda73d86eded283ec4f
やりたいこと
手元の作業PCで作成したアプリが、実機についているデバイスがないと動かないというときに、VisualStudioのリモートデバッグ機能を使って実機でデバッグするのだが、度々その実機が「ちょっとデモで動かしたいから貸して」とかで持っていかれてしまう。
その際別の実機を借りるのだが、毎回リモートデバッグのための設定をするのが面倒なため、手早く設定できるようにしたい。
やり方
下記のようなバッチを作成する。やっていることは、下記の通り。
- IPアドレスを固定のものに設定(ここでは192.168.1.111にしている)
- フォルダの共有を有効にする(どうしても自動化できなかったので、手動で設定するよう促す)
- 「アプリケーションと安全でないファイルの起動」設定を変更(警告dlgを出さない)
- デスクトップに「test」フォルダを作って、共有する(ここを作業用PCとのファイルやりとりフォルダにする意図)
- リモートデスクトップを有効にする
- ファイル・フォルダの共有を有効にする(VisualStudioでリモートPCに出力できるように)
意図
デスクトップ上にフォルダ(testフォルダ)を作って、自分の作業用PCのVisualstudioでビルドしたものをそこに出力されるよう設定して使う想定。
アプリケーションと安全でないファイルの起動の設定は、リモートで実行したアプリから別のexeを実行しようとしたときに警告dlgが出るのを防ぐ。
@echo off
rem -------------------------------------------------------
rem IPアドレスを固定のものに設定
rem ※よく使う環境が、日本語と英語両方あるので、両方でtryする
rem -------------------------------------------------------
netsh interface ip set address "Ehternet 2" static 192.168.1.111 255.255.255.0
netsh interface ip set address "イーサネット 2" static 192.168.1.111 255.255.255.0
echo;
rem -------------------------------------------------------
rem 「アプリケーションと安全でないファイルの起動」を編集
rem 0:有効にする ★
rem 1:ダイアログを表示する
rem 3:無効にする
rem -------------------------------------------------------
Reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3" /v "1806" /t REG_DWORD /d "0" /f
rem -------------------------------------------------------
rem デスクトップに「test」フォルダを作って、共有する
rem ※everyoneに古コントロールを付けて共有
rem -------------------------------------------------------
set DESKTOPPATH=%USERPROFILE%\Desktop
set SHAREFOLDERPATH=%DESKTOPPATH%\test
cd %DESKTOPPATH%
mkdir test
net share test /delete
net share test="%SHAREFOLDERPATH%" /grant:everyone,full
rem -------------------------------------------------------
rem リモートデスクトップを許可する設定実施
rem 0:許可する
rem 1:許可しない
rem -------------------------------------------------------
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d "0" /f
rem -------------------------------------------------------
rem フォルダの共有を有効にする。
rem ここは自動化ができなかったので、手でやるよう促す。
rem -------------------------------------------------------
control.exe /name Microsoft.NetworkAndSharingCenter
echo 左のほうにある「共有の詳細設定の変更」を押してください。
echo 「共有の詳細設定」画面が開きます。
echo;
pause
echo;
echo 1.「プライベート」の中の「ファイルとプリンタ共有」で、「ファイルとプリンタの共有を有効にする」にチェックしてください。
pause
echo;
echo 2.「ゲストまたはパブリック」の中の「ファイルとプリンタ共有」で、「ファイルとプリンタの共有を有効にする」にチェックしてください。
pause
echo;
echo 3.「ドメイン」の中の「ファイルとプリンタ共有」で、「ファイルとプリンタの共有を有効にする」にチェックしてください。
pause
echo;
echo 4.「すべてのネットワーク」の中の「パブリックフォルダーの共有」で、「共有を有効にして・・・」にチェックしてください。
pause
echo 手動設定おわりです。
echo;
rem -------------------------------------------------------
rem リモートデバッガをインストールする
rem -------------------------------------------------------
echo リモートデバッガをインストールします。
%~dp0vs_remotetools.exe
rem -------------------------------------------------------
rem 終わり
rem -------------------------------------------------------
echo 作業完了です。
pause
※同じ階層に、MSのページから落としてきたリモートデバッガのインストーラー(vs_remotetools.exe)を置いておく必要アリ。
→リモートデバッガの入手先などは、こちらを参照。
ファイルとプリンタの共有の自動化について
下記のページに、そのあたりの情報があった。
https://foojee.hatenadiary.org/entry/20091210
ただ、結構大変そう。いずれ見てみる。
参考
batファイルからインターネットオプションを操作したい
https://teratail.com/questions/23565
「アプリケーションと安全でないファイルの起動」がレジストリのどこか?
https://yuzuemon.hatenablog.com/entry/20110510/1305043925
バッチでレジストリを変更
http://neos21.hatenablog.com/entry/2017/01/11/000000
バッチでレジストリを変更2 ※こっちがわかりやすい
https://www.projectgroup.info/tips/Windows/cmd_0024.html
デスクトップへのパスをバッチでとる
https://pentan.info/server/windows/cmd/userprofile.html
ファイル、フォルダの共有設定
https://www.atmarkit.co.jp/ait/articles/0609/09/news020.html
ファイル、フォルダの共有設定2 これでできた
https://social.technet.microsoft.com/Forums/windowsserver/ja-JP/d3984239-8037-4a13-b78b-7ea06294ffbe?forum=windowsserver2003ja
リモートデスクトップの許可設定
http://long-distance.jp/sb/log/eid47.html
リモートデスクトップがどうしてもできないときにみたところ
public/privateを切り替えする方法など
https://laboradian.com/win10-change-net-public-private/