CHANGE — управление сервером терминалов из командной строки

CHANGE — команда CMD для управления сервером терминалов Windows: управляет входом в сеансы, маппингом COM-портов и режимом установки приложений.

CHANGE — команда командной строки Windows для управления параметрами сервера терминалов (Remote Desktop Services). Она объединяет три подкоманды: CHANGE LOGON управляет входом в сеансы, CHANGE PORT переназначает COM-порты, CHANGE USER переключает режим установки приложений для многопользовательской среды.

Синтаксис команды CHANGE

CHANGE LOGON {/QUERY | /ENABLE | /DISABLE | /DRAIN | /DRAINUNTILRESTART}
CHANGE PORT [порт1=порт2 | /D порт1 | /QUERY]
CHANGE USER {/EXECUTE | /INSTALL | /QUERY}

Каждая подкоманда работает независимо. Запускать нужно только одну из трёх за раз.

Ключи и параметры

Ключ Описание Пример
LOGON /QUERY Показывает текущее состояние входа в сеансы (включён/отключён) CHANGE LOGON /QUERY
LOGON /ENABLE Разрешает новые сеансы пользователей на сервере терминалов CHANGE LOGON /ENABLE
LOGON /DISABLE Запрещает новые сеансы входа (существующие не обрываются) CHANGE LOGON /DISABLE
LOGON /DRAIN Запрещает новые сеансы, но ждёт завершения текущих CHANGE LOGON /DRAIN
LOGON /DRAINUNTILRESTART Запрещает новые сеансы до ближайшей перезагрузки CHANGE LOGON /DRAINUNTILRESTART
PORT порт1=порт2 Переназначает COM-порт: все запросы к порт1 перенаправляются на порт2 CHANGE PORT COM1=COM3
PORT /D порт Удаляет переназначение указанного порта CHANGE PORT /D COM1
PORT /QUERY Выводит список всех активных переназначений COM-портов CHANGE PORT /QUERY
USER /EXECUTE Переключает в режим выполнения (нормальная работа пользователей) CHANGE USER /EXECUTE
USER /INSTALL Переключает в режим установки приложений (запись в HKLM вместо HKCU) CHANGE USER /INSTALL
USER /QUERY Показывает текущий режим — EXECUTE или INSTALL CHANGE USER /QUERY

Примеры использования

Временное отключение новых подключений перед обслуживанием

Нужно выполнить обслуживание сервера, не обрывая активные сеансы.

CHANGE LOGON /DRAIN

Новые пользователи не смогут войти, а уже работающие сеансы продолжат работу. После завершения обслуживания выполните CHANGE LOGON /ENABLE.

Проверка состояния входа перед обновлением

Перед изменением настроек полезно убедиться в текущем статусе.

CHANGE LOGON /QUERY

Команда выведет строку вида Session logins are currently enabled или disabled.

Установка приложения в многопользовательской среде

При установке ПО на сервер терминалов нужно, чтобы настройки применялись ко всем пользователям, а не только к текущему.

CHANGE USER /INSTALL
setup.exe
CHANGE USER /EXECUTE

В режиме INSTALL реестровые записи приложения пишутся в HKEY_LOCAL_MACHINE, что обеспечивает единые настройки для всех пользователей. После установки обязательно верните режим EXECUTE.

Переназначение COM-порта для legacy-оборудования

Старое ПО требует COM1, а оборудование подключено к COM3.

CHANGE PORT COM1=COM3

Все обращения приложения к COM1 будут перенаправлены на COM3 в рамках текущего сеанса терминала.

Просмотр всех активных переназначений портов

Нужно проверить, какие COM-порты переназначены на сервере.

CHANGE PORT /QUERY

Команда выведет таблицу активных маппингов или сообщит, что переназначений нет.

Отключение входа до перезагрузки после применения патчей

После установки патчей сервер нужно перезагрузить, новые подключения нежелательны.

CHANGE LOGON /DRAINUNTILRESTART

Сервер перестанет принимать новые сеансы до следующего старта, после перезагрузки вход автоматически разрешится.

Частые ошибки и решения

Ошибка Причина Решение
«Отказано в доступе» при выполнении любой подкоманды CMD запущена без прав администратора Запустить CMD от имени администратора (ПКМ → «Запуск от имени администратора»)
«Команда не найдена» или «CHANGE не является командой» Служба Remote Desktop Services не установлена или отключена Убедиться, что роль RDS активна; на обычной рабочей станции CHANGE работает только частично
После CHANGE USER /INSTALL приложение не работает для других пользователей Установщик был запущен до переключения режима Удалить приложение, сначала выполнить CHANGE USER /INSTALL, затем установить заново
CHANGE PORT не сохраняется после перезагрузки Переназначение действует только в рамках текущей сессии Добавить команду в сценарий входа пользователя или групповую политику
После /DRAIN сеансы не завершаются часами Пользователи не завершают работу вручную Использовать QWINSTA для просмотра сеансов и LOGOFF <ID> для принудительного завершения

Когда применять, а когда нет

Команда CHANGE актуальна исключительно в среде Remote Desktop Services (Windows Server или Windows 10/11 с включённой ролью RDS). На обычной рабочей станции без роли терминального сервера подкоманды LOGON и USER не имеют эффекта или вернут ошибку. Команда требует прав локального администратора. Аналог в PowerShell — командлеты модуля RemoteDesktop: например, Set-RDSessionCollectionConfiguration для управления сеансами, однако CHANGE USER /INSTALL не имеет прямого аналога в PowerShell и остаётся предпочтительным способом для переключения режима установки приложений.

FAQ

Чем отличается CHANGE LOGON /DISABLE от /DRAIN?

/DISABLE немедленно запрещает новые входы, но ничего не делает с существующими сеансами. /DRAIN тоже запрещает новые входы, но дополнительно ждёт, пока все текущие пользователи завершат работу самостоятельно — более корректный вариант для планового обслуживания.

Нужно ли вручную возвращать режим EXECUTE после установки?

Да, обязательно. Если оставить режим INSTALL, все дальнейшие запуски программ будут работать некорректно: настройки пользователей не будут сохраняться в профиле. Всегда выполняйте CHANGE USER /EXECUTE сразу после завершения установки.

Работает ли CHANGE на Windows 10 без сервера?

На обычной рабочей станции Windows 10 команда присутствует, но подкоманды LOGON и USER не производят видимого эффекта без активной службы терминалов. Команда PORT может работать для переназначения COM-портов в RDP-сеансе.

Можно ли использовать CHANGE в скриптах автоматизации?

Да. Команда возвращает стандартные коды завершения: 0 — успех, ненулевой — ошибка. Это позволяет использовать её в bat-файлах с проверкой через IF ERRORLEVEL или в PowerShell-скриптах через $LASTEXITCODE.

Как проверить, в каком режиме сейчас работает сервер перед установкой ПО?

Выполните CHANGE USER /QUERY. Если вернётся Application EXECUTE mode is enabled — режим нормальный, можно переключить в INSTALL. Если уже INSTALL mode — кто-то забыл вернуть режим после предыдущей установки.

Нужны ли права домена или достаточно локального администратора?

Для выполнения CHANGE достаточно прав локального администратора на сервере терминалов. Права домена не требуются, если только групповые политики не ограничивают доступ к инструментам управления RDS.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.