LoginSignup
17
21

More than 5 years have passed since last update.

リモートデスクトップ接続のちょっとした工夫

Last updated at Posted at 2015-06-11

お知らせ

続編書きました

リモートでの同時最大接続数が「1」なWindows系OS

WindowsServerであればリモートデスクトップの同時最大接続数を簡単に変更でますが、Windows7などの非サーバーでは、同時最大接続数を簡単には変更できません。

個人用途であれば、「Universal Termsrv.dll Patch」で最大接続数を増やせるようですが、業務目的のマシンに適用するとなるとNG判定されることが多いと思います。

そういう理由で同時最大接続数を1にしたままにしておくと、自分が作業をしているときに、他の人がログインしてきてセッションが切れるということが多発します。

  • 気分がノってるときに遭遇すると悲しくて悲しくて目に涙を浮かべながら下野由貴ちゃんの卓上カレンダーを眺めています

そんなモチベの低下を少しでも減らすためのバッチを作りました。

主な仕様

  • (おまけ)接続先のマシンに関する情報をCSVから取得する
  • (おまけ)接続先にpingを打って生死確認
  • 接続先に接続中のユーザがいないかを確認する⇒PSToolsを使う
  • 目視確認の上、問題なければリモートデスクトップで接続

バッチのご紹介

@echo off
cd /d "%~dp0"
set /P INP=サーバー名を入力してください 例:YUKIDOKUSEN >
for /f "eol=, delims=, tokens=1-4" %%i in ('findstr /I %INP% serverlist.csv') do (
    set sv_name=%%i
    set sv_ip=%%j
    set user_name=%%k
    set user_pass=%%l
)
if DEFINED sv_name (
    @echo on
    echo;
    echo ***PING送信中***
    ping -n 1 %sv_ip%
    echo;
    echo ***ログイン中のユーザ確認***
    PSTools\PsExec.exe \\%sv_ip% -u %user_name% -p %user_pass% query user
    echo ***状態がDiscならログイン状態を奪いません***
    echo ***状態がActiveの場合は誰かがログインしています***
    echo;
    setlocal enabledelayedexpansion
    set /p YN=リモートデスクトップで接続しますか?[Y/N]
    if /i "!YN!"=="Y" ( 
        mstsc /v:%sv_ip%
    ) else (
        exit /b
    )
)

バッチ本体とPSToolsをチーム内に配ると、みんなが少しだけハッピーに!

  • なる予定だったんですが2人くらいにしかお礼言われてません(f●ck)

PSTools

早い話が、プロセスをリモートで実行するためのマイクロソフト謹製ツールです。

今回は、query userのコマンドをリモートで実行してその結果を確認していますが、当然、他のコマンドも叩けます。活用方法はいろいろあるのではないでしょうか。

備考

  • そんなに凝ったバッチでもないんですが、2回目のset /pで入力値をまともに受け取ってもらえませんでした
  • 解決策は、「setlocal enabledelayedexpansion」の一文
  • 未だに、なぜ、必要なのかよくわかってはいません(ぉぃ)
17
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
21