У нас есть сервер Windows (2008 R2) с установленной функцией «Службы удаленных рабочих столов» и без домена Active Directory. Удаленный рабочий стол настроен на "Allow connections only from computers running Remote Desktop with Network Level Authentication (more secure)"
. Это означает, что перед отображением удаленного экрана соединение проверяется в окне «Безопасность Windows: введите свои учетные данные».
На этом сервере установлены только две службы ролей: узел сеанса удаленных рабочих столов и лицензирование.
Когда в свойствах локального пользователя на этом сервере установлен флажок «Пользователь должен сменить пароль при следующем входе в систему», на клиентском компьютере после попытки подключения с использованием учетных данных, которые были действительными в последний раз, отображается следующее:
На некоторых других серверах, использующих RDP для доступа администратора (но без установленной роли служб удаленных рабочих столов), поведение отличается - сеанс начинается, и пользователю выдается запрос на изменение пароля на удаленном экране. Что мне нужно сделать, чтобы воспроизвести это поведение на сервере служб удаленных рабочих столов?
Я собираюсь заявить, что вы не можете этого сделать. При принудительном NLA (аутентификации на сетевом уровне) пользователь не может удаленно войти в систему и изменить свой пароль.
Вы можете использовать tsconfig.msc на сервере удаленного рабочего стола, щелкните правой кнопкой мыши соединение RDP-Tcp, выберите «Свойства» и измените раскрывающееся меню уровня безопасности на «Уровень безопасности RDP», но тогда вы потеряете NLA. К сожалению, эти две настройки исключают друг друга.
Если у вас должен быть NLA, вам необходимо установить альтернативный метод для пользователей для изменения паролей с истекшим сроком действия, например, через Outlook Anywhere, RDWeb Access, или физическую консоль рабочей станции, присоединенной к домену, и т. Д.
Это своего рода «ловушка-22», потому что по замыслу NLA даже не выделяет системные ресурсы, необходимые для создания сеанса удаленного рабочего стола, до тех пор, пока ваши учетные данные не будут проверены на действительность. Но вам нужно будет подключиться к полному сеансу, создать рабочий стол, создать LogonUI.exe и т. Д., Чтобы изменить свой пароль. Но у вас не может быть сеанса, потому что срок действия вашего пароля истек. Разрешение этого, я считаю, открыло бы дыру в NLA, где пользователь мог бы обойти NLA и в любом случае получить сеанс, даже если у них нет хорошего (то есть не просроченного) пароля.
http://support.microsoft.com/kb/2648402 говорит:
В спецификации протокола для CredSSP нет ссылки на возможность изменения пароля пользователя во время работы NLA. Следовательно, наблюдаемое поведение можно рассматривать «по замыслу».
CredSSP - это базовая технология, которая включает NLA, и она не поддерживает смену пароля. Следовательно, изменение пароля в MSTSC не разрешено. Другие клиенты удаленных рабочих столов, поддерживающие NLA, не могут изменить пароль пользователя.