はじめに
知っている人は知っている話だが、Windowsにはログオンセッションの違いによって動作が違うプログラムというのが存在する。Power Automate Desktopで書いたUI操作がいるフローとか。
セッションの種類
実機アクセスしている場合console sessionになる
C:\Users\yumetodo>query session
セッション名 ユーザー名 ID 状態 種類 デバイス
services 0 Disc
>console yumetodo 2 Active
rdp-tcp 65537 Listen
RDPアクセスしている場合、remote sessionになる
PS C:\WINDOWS\system32> query session
セッション名 ユーザー名 ID 状態 種類 デバイス
services 0 Disc
console 1 Conn
>rdp-tcp#1 yumetodo 2 Active
31c5ce94259d4... 65536 Listen
7a78855482a04... 65537 Listen
rdp-tcp 65538 Listen
リモートデスクトップで、ウィンドウを閉じて切断するとセッションがリモートセッションのままになってしまう。
tscon
そこで、管理者権限コマンドプロンプトから
tscon 1 /dest:console
のように、現在RDPしているセッションID(一つ上のquery sessionの結果の場合2になる)をコンソールセッションに切り替えることでRDPを切断するとうまくいくことがある。