Ответ glenviewjeff дал мне большую часть пути, но идентификатор сеанса не всегда 1. Если вы попытаетесь отключить сеанс прослушивания или консоли, как это, вы получите «Ошибка 7045» - запрошенный доступ к сеансу запрещен, или если Идентификатор сеанса не существует. Идентификатор сеанса не найден.
Я сделал небольшой командный файл, чтобы вытащить текущий сеанс. Поскольку я делал это в 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, но если я это сделаю, я не смогу использовать кнопку аппаратного сканирования, пока не войду в систему вручную или не перезапущусь. Пакетный файл выше решает эту проблему.