Відповідь glenviewjeff отримала мене більшу частину шляху, але ідентифікатор сеансу не завжди 1. Якщо ви спробуєте відключити сеанс прослуховування чи консолі, як це, ви отримаєте "Помилка 7045" - запитуваному доступу до сеансу заборонено, або якщо ідентифікатор сесії не існує помилки SessionID не знайдено.
Я зробив невеликий пакетний файл, щоб витягнути поточний сеанс. Коли я робив це в Windows XP, мені потрібно було qwinsta, а не запитувати сеанс, щоб з'ясувати поточний ідентифікатор. Цей пакетний файл використовує утиліти командного рядка unix, я використовую Gnu в Windows ( https://github.com/bmatzelle/gow/downloads ), щоб мати доступ до них. Він витягує поточний сеанс, шукаючи знак ">", а потім присвоює його знову консольному сеансу.
for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $4}"') do set VAR=%%i
tscon %var% /dest:console
Мені це знадобилося для машини, підключеної до сканера Fujitsu IX500, сканер сканує лише, якщо екран не знаходиться на екрані вибору імені користувача / реєстрації сигналів в Windows, і це те, що ви отримуєте, коли ви виходите з системи або відключаєте сеанс. Оскільки машина працює без екрана, я хочу мати змогу підключитися через rdp, але якщо я це зробив, я не зміг би скористатися кнопкою апаратного сканування, поки не ввійшов у систему вручну або не перезапустився. Пакетний файл вище вирішує цю проблему.