🪟
リモートデスクトップ セッション切断時に自動で再サインインさせる
Windows 11 Proをリモートデスクトップで操作を行った後、セッション切断時に自動でローカルマシンに再サインインしていてほしい場合があります。
本記事では、RDPセッション切断時に、自動サインイン用のスクリプトをタスクスケジューラで自動実行させることで対応を行いました。
環境
- Windows 11 Pro 25H2
自動再サインインスクリプトの作成
以下に示す2つのファイルを作成し、任意のディレクトリに配置します。
このとき、 RDP2Console.ps1 は、1行目のユーザー名を書き換えることを忘れないでください。
RDP2Console.ps1
$username = "【ユーザー名】"
$targetLine = query session | Where-Object { $_ -match $username }
if (-not $targetLine) {
exit 1
}
if ($targetLine -match '.*(\d+).*Disc') {
$sessionId = [int]$Matches[1]
} else {
exit 1
}
tscon $sessionId /dest:console
Launcher.bat
@echo off
SET ScriptPath=%~dp0RDP2Console.ps1
powershell.exe -NoLogo -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File "%ScriptPath%"
タスク スケジューラの設定
- タスクスケジューラを起動します
- 右クリックで
新しいタスクの作成を選択します -
全般タブを、以下の画像の通り設定します
-
トリガータブに値を新規で追加し、以下の画像の通り設定します
- ログ :
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational - ソース :
TerminalServices-LocalSessionManager - イベントID :
24
- ログ :
-
操作タブに値を新規で追加し、先ほど用意したLauncher.batを設定します
-
条件と設定はお好みで設定します

以上です。
PC起動時にパスワードが要求される設定になっている場合は、 tscon コマンドの際にパスワードを引数で渡してあげる必要があるかもしれません。
その場合は、 /password:【パスワード】 を tscon の行の末尾に追加してみてください。
Discussion