2

Сегодня я столкнулся с интересной ситуацией, о которой я не знал.

Я вошел в систему с помощью пользователя A используя имя хоста DNS-сервера SERVNAME и получил сеанс и мой рабочий стол. Я положил на рабочий стол какой-то файл.

Затем мой друг также вошел в систему с тем же пользователем A , но с использованием IP-адреса сервера IP xxx.xx.xx.x и Windows создал второй сеанс для того же пользователя A и вторую версию рабочего стола! Он не видел файл с моего рабочего стола и, более того, не выгнал меня из сессии, как я ожидал.

Но если он подключается по имени сервера SERVNAME он выгоняет меня из сессии.

  • Да, это тот же сервер.
  • Параметр Restrict each user to a single session имеет значение Yes (fSingleSessionPerUser = 1)

Как это может быть? Какая разница в ведении журнала по IP или доменному имени?

3 ответа3

3

Здесь есть два вопроса:

1.) Почему службы терминалов Windows не ограничивают пользователя A одним сеансом?

В нем говорится, что Users can open multiple sessions to a server that is restricted to a single session for each user.

Это продолжает говорить, что This functionality is working as expected. This setting is limits each user to one unique session. However, if the user is running different initial programs, the sessions are considered as different sessions.

Использование имени хоста сервера и его IP-адреса достаточно для Windows, чтобы считать сессии уникальными.

2.) В моем сеансе у меня есть файл на рабочем столе, почему этот файл не отображается во втором сеансе?

Windows создает 2 уникальных сеанса, поэтому создает второй уникальный профиль для второго входа пользователя A Если перейти в командную строку, вы увидите, что один сеанс начинается в C:\Users\User A\ а второй - C:\Users\User A.000\ . Аналогичным образом взгляните на C:\Users из окна Windows File Explorer.

1

Я предполагаю, что при прохождении через DNS или через IP-адрес существует разница в идентификации компьютера, который отправляет запрос RDP.

Разница может заключаться в том, что имя пользователя получает другой квалификатор, например, WORKGROUP.

Я предлагаю войти в систему, используя оба метода, а затем в командной строке (cmd) использовать команду whoami, чтобы найти точную учетную запись пользователя, которая используется:

whoami /user

Если есть разница, то вы нашли свой ответ.

[РЕДАКТИРОВАТЬ]

Поскольку вы обнаружили, что в обоих случаях один и тот же пользователь находится в одном и том же домене и имеет одинаковый идентификатор безопасности, мое единственное объяснение - это разница, которая вам не видна. Возможно, из-за запроса DNS ваш запрос на подключение не соответствует точному пути в сети, который используется при использовании IP-адреса.

Мой личный вывод заключается в том, что Windows в этом случае не ищет соединение в нужном месте, не находит существующее соединение и поэтому открывает новый сеанс / рабочий стол. Однако, когда процесс входа в систему выполняется на этом новом рабочем столе, он регистрирует вас под правильной учетной записью пользователя / SID, поэтому один и тот же пользователь получает два рабочих стола.

Вы можете продолжить изучение этой возможности, используя утилиту LogonSessions от Sysinternals, которая дает более подробную информацию о текущих активных сеансах входа в систему. Другой, возможно, полезной утилитой является графический интерфейс EnumWinsta, который отображает список оконных станций и рабочих столов.

Более подробную информацию можно найти в статье:
Windows Sysinternals: основные понятия Windows - сеансы, оконные станции, рабочие столы и оконные сообщения.

Другими словами, я считаю, что это недокументированная ошибка в RDP, о которой вы должны сообщить. К сожалению, Microsoft Connect не принимает ошибки для Windows, поэтому единственный вариант - зайти на форумы Microsoft Windows и надеяться, что кто-то из Microsoft пропустит исправление в какое-то неизвестное время в будущем.

0

объяснение

Как указано в комментариях выше, серверные терминальные службы принимают несколько подключений к одному и тому же компьютеру от нескольких разных пользователей или (если настроено) одновременных входов в систему для одного и того же пользователя.

Как это может быть? Какая разница в ведении журнала по IP или доменному имени?

Нет никакой разницы, вы подключаетесь к одной и той же машине, просто используя для этого два разных метода. 1) Имя хоста, которое просто ищет и разрешает IP и 2) использует IP вместо домена, это базовый DNS.

Параллельные логины

В подразделе сервера терминалов есть значение реестра, которое отвечает за несколько подключений одного и того же пользователя, и это DWORD fSingleSessionPerUser .

Открыть регедит (Ключ Windows+ R) -> regedit + enter

Перейдите к

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer

Двойной щелчок или правый клик -> изменить ключ fSingleSessionPerUser

Я предполагаю, что значение установлено в 0, измените это на 1.

  • 0 = несколько сеансов на пользователя
  • 1 = один сеанс на пользователя

Примените изменения и перезапустите службы удаленного рабочего стола. (увидеть ниже)

Открыть cmd (Ключ Windows+ R) -> cmd + enter

Введите net stop termservice и нажмите ввод, затем net stop termservice и нажмите ввод.

Приведенный выше ответ протестирован в последней версии Windows Server 2013 и восходит к Windows Server 2003.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .