Удаленный вход в систему (RDP) к серверу, используя его имя хоста DNS или его IP, дает той же учетной записи пользователя два рабочих стола

4692
Rodion

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

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

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

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

  • Да, это тот же сервер.
  • Опция Restrict each user to a single sessionустановлена ​​в Yes( fSingleSessionPerUser = 1)

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

2
Указание на домен указывает на конкретную точку в сети, в то время как IP-адрес может содержать множество доменов. Веб-сервер был бы хорошим примером этого. Размещает ли ваш IP несколько серверов с помощью удаленного рабочего стола? Matthew Williams 10 лет назад 0
@MatthewWilliams не может сказать, что это виртуальный сервер. В чем разница с ОС Windows, если на моем IP размещено несколько серверов? Rodion 10 лет назад 0
Проблема заключается не в размещении нескольких серверов, а в конфигурации, используемой для удаленного доступа в систему. Возможно, несколько серверов прослушивают порт 3389 для запросов RD. При перечислении только IP-адреса нет ссылки на тот сервер, который вы запросили. Имя сервера дает вам конкретную систему для указания. Используете ли вы, что ваш друг попал на тот же сервер, что и вы? Matthew Williams 10 лет назад 0
@ MatthewWilliams, конечно, это тот же сервер. Для подтверждения я скопировал файл на системный диск c, и мой друг получил его. Rodion 10 лет назад 0
Windows Server поддерживает мульти-сессию для RDP. Вы можете дважды войти в систему из RDP. Изучите, как установлены ваши настройки RDS в отношении рабочих столов, восстановления пользовательских сеансов и т. Д. Ƭᴇcʜιᴇ007 10 лет назад 0
@ techie007 Здесь установлено «Ограничить каждого пользователя одним сеансом» на «Да», и я думаю, что ваш комментарий не имеет отношения к вопросу о разнице в журнале по IP или имени. Rodion 10 лет назад 0
Если машина не может использовать один сеанс, будет ли она использовать временный профиль Dave 10 лет назад 2

3 ответа на вопрос

3
David

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

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.

2) - нет пользователя A.000, только пользователь A 1) - очень интересно, так что вы подразумеваете, что подключение к удаленному рабочему столу в разных логинах по-разному ... что делать? Установка какой программы? `Установите любую программу для запуска при подключении, а затем подключитесь к компьютеру под управлением Windows Server` Rodion 10 лет назад 0
Это текст из базы знаний MS. Я вижу такое поведение все время на наших серверах, где разные администраторы входят в систему с пользователями Администратора домена, и у них открыты разные сессии. David 10 лет назад 0
Имея 2 разных сеанса для одного и того же пользователя, Windows создаст второй профиль для второго пользователя, в противном случае вы столкнетесь с проблемами с такими вещами, как куст / хранилище реестра пользователей. David 10 лет назад 0
Это не объясняет, почему с DNS тот же логин выбивает существующий сеанс, но не с IP. harrymc 10 лет назад 1
1
harrymc

Я предполагаю, что при прохождении через 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 пропустит исправление в какое-то неизвестное время в будущем.

Точно такой же пользователь в том же домене и с тем же SID. Rodion 10 лет назад 0
Я добавил выше мои выводы из ваших выводов. harrymc 10 лет назад 0
Это не ошибка, это ожидаемое поведение. Смотрите мой ответ ниже, со ссылкой на статью kb. Службы MS Terminal будут ограничивать пользователя только одним сеансом, если детали сеанса * точно * совпадают. Использование имени хоста против IP-адреса достаточно для Windows, чтобы думать, что сеансы разные. David 10 лет назад 0
@ Дэвид: ошибка не в том, чтобы иметь несколько сессий и рабочих столов. Ошибка заключается в том, что при подключении по разным сетевым путям не получается одинаковых результатов. Помните, что с DNS один пользователь выбрасывает существующий сеанс, но не с IP. harrymc 10 лет назад 0
Windows не смотрит на источник, но на место назначения, чтобы определить уникальное соединение. Когда первый пользователь загружает файл на свой рабочий стол, он не отображается на рабочем столе второго сеанса по уважительной причине: каждый сеанс нуждается в эксклюзивности. Здесь нет ошибки. David 10 лет назад 0
harrymc и @David спасибо, ребята! Вы оба очень помогли. harrymc, приложения из статьи были очень полезны Rodion 10 лет назад 0
0
Samuel Nicholson

Explanation

As the comments above have stated, server based terminal services accept multiple connections to the same machine, either from multiple different users or (if configured) concurrent logins for the same user.

How can it be? What is the difference in logging by IP or domain name?

There's no difference, you're remoting on to the same machine, just using two different methods to do so. 1) The hostname which simply looks up and resolved the IP and 2) using the IP instead of the domain, that's basic DNS.

Concurrent Logins

There's a registry value within the Terminal Server subkey that is responsible for multiple same user connections and that's the fSingleSessionPerUser DWORD.

Open regedit (Windows Key+R) -> regedit + enter

Navigate to

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer 

Double click or right-click –> modify the key fSingleSessionPerUser

I imagine the value is set to 0, change this to 1.

  • 0 = Multiple sessions per user
  • 1 = Single session per user

Apply the changes and restart remote desktop services. (see below)

Open cmd (Windows Key+R) -> cmd + enter

Type net stop termservice and press enter, then net stop termservice and press enter.

The above answer is tested on the latest release of Windows Server 2013, and dates back to I believe Windows server 2003.

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

Похожие вопросы