Разрешить пользователям изменять просроченный пароль через подключение к удаленному рабочему столу


13

ИНФОРМАЦИЯ:

  • У меня возникает ситуация, когда я вынужден использовать сервер (Windows 2012 R2), который НЕ является частью домена и НЕ имеет AD. Это не мой выбор, не оптимальный, но вне моего контроля.

  • У меня также есть локальные пользователи, которые подключаются к этому серверу через RDP, и у локальных пользователей есть политика истечения срока действия пароля.

  • Поскольку AD / Exchange не является частью изображения, пользователи не получают уведомления о том, что срок действия их паролей истекает.

ПРОБЛЕМА . Проблема в том, что истек срок действия пароля пользователя, и он пытается войти в систему с помощью подключения к удаленному рабочему столу. Это не позволяет им менять свой пароль.

Я снял флажок «Разрешить подключения ТОЛЬКО с компьютеров, на которых запущен удаленный рабочий стол с аутентификацией на уровне сети» со стороны сервера, поэтому сервер НЕ требует NLA для входящих сеансов RDP.

Тем не менее, при использовании диспетчера подключений к удаленному рабочему столу Windows, кажется, принудительно NLA.

Если я использую клиент удаленного рабочего стола «Терминалы», на стороне клиента есть возможность отключить использование «Аутентификация на уровне сети». Если я отключаю NLA через клиент Terminals и подключаюсь к серверу, это позволяет мне изменить пароль пользователя с истекшим сроком действия.

ВОПРОС: Я предполагаю, возможно, неправильно, что программа Terminals просто находится поверх протоколов подключения к удаленному рабочему столу Windows, и что если вы можете отключить клиентскую часть проверки подлинности на уровне сети через программу Terminals, то вы также должны иметь возможность отключите это через встроенный диспетчер подключений к удаленному рабочему столу Windows. К сожалению, я не вижу этой опции в графическом интерфейсе диспетчера соединений и не вижу никаких параметров в файлах ".RDP", специфичных для NLA.

Если я нажимаю «О программе» в диспетчере подключений к удаленному рабочему столу на стороне клиента, он сообщает, что «Проверка подлинности на уровне сети поддерживается». Формулировка заставляет меня поверить, что использовать ее необязательно, но, опять же, я не вижу способа отключить ее в диспетчере соединений. Кстати, этот конкретный менеджер соединений v10.


1
Я отредактировал ваш вопрос (конкретно название), чтобы сосредоточиться на вашей основной цели, а не на предлагаемом способе достижения цели. Смотрите проблему XY .
— Я говорю: восстанови Монику

Ответы:


13

Вы можете решить эту проблему двумя способами:

1. Установите роль RD Web Access и включите опцию удаленной смены пароля.

Следующие указания взяты из статьи woshub.com Разрешить пользователям сбрасывать просроченный пароль через RD WebAccess в Windows Server 2012 :

В Windows 2012/2012 R2 появилась опция, позволяющая удаленному пользователю изменять свой пароль (текущий или устаревший) с помощью специальной веб-страницы на сервере RD Web Access. Пароль будет изменен следующим образом: пользователь входит на веб-страницу регистрации на сервере с ролью RD Web Access и меняет свой пароль с помощью специальной формы.

Параметр удаленного изменения пароля доступен на сервере с ролью «Веб-доступ к удаленному рабочему столу», но по умолчанию он отключен. Для изменения пароля используется скрипт password.aspx , который находится в C: \ Windows \ Web \ RDWeb \ Pages \ en-US .

  1. Чтобы включить параметр смены пароля, на сервере с настроенной ролью RD Web Access откройте консоль IIS Manager, перейдите в [Имя сервера] -> Сайты -> Веб-сайт по умолчанию -> RDWeb -> Страницы и откройте раздел Настройки приложения .

    введите описание изображения здесь

  2. На правой панели найдите параметр PasswordChangeEnabled и измените его значение на true .

    введите описание изображения здесь

  3. Вы можете проверить механизм смены пароля, перейдя на следующую веб-страницу:

    https: //RDSServerName/RDWeb/Pages/en-US/password.aspx

    введите описание изображения здесь

  4. Теперь при попытке подключения к серверу Веб-доступ к удаленным рабочим столам с просроченным паролем пользователь будет перенаправлен на веб-страницу password.aspx и предложит сменить пароль.

    введите описание изображения здесь

    Совет . Та же функция Windows Server 2008 R2 может стать доступной после установки специального патча - KB2648402 .


2. Включить подсказки, уведомляющие пользователей об истечении срока действия пароля

  1. Запустите gpedit.mscна RDSH-сервере, чтобы открыть локальную групповую политику
  2. Нагиват к Computer Configuration\Windows Settings\Local Policies\Security Options
  3. Измените настройку Интерактивный вход в систему: попросите пользователя сменить пароль до истечения срока действия и укажите разумное количество дней, например 14.
  4. Пользователи, включая тех, кто вошел в систему с помощью удаленного рабочего стола, получат уведомление до истечения срока действия пароля.

Спасибо @twisty, я должен был упомянуть, что установка роли сервера удаленного рабочего стола также не была возможной. Тем не менее, это отличная информация для кого-то еще в аналогичной ситуации. Подсказки это хорошая вещь, чтобы знать, хотя!
— 17

3
Тогда у вас нет выбора, кроме как отключить NLA на сервере и клиентах, чтобы позволить им сменить пароль. Опасно, что это значительно снижает безопасность соединений RDP.
— Я говорю Восстановить Монику

10

Оказывается, это контролируется с помощью свойства, отсутствующего в списке, в файле конфигурации .RDP, называемом «enablecredsspsupport», и, устанавливая для него значение «0», оно загружает страницу входа в сеанс RDP и позволяет пользователю изменять свой пароль с истекшим сроком действия.

Точный синтаксис, необходимый в файле конфигурации .RDP:

enablecredsspsupport: я: 0

Если вам нужна дополнительная ссылка или чтение, перейдите сюда: Тирания аутентификации сетевого уровня и CredSSP


7
Это работает, только если NLA не требуется сервером. В противном случае вы получите сообщение о том, что поддержка сетевого уровня требуется удаленному компьютеру, но не поддерживается на локальном компьютере. Вы должны объяснить, что на самом деле делает этот параметр, возможно, ссылаясь на абзац из связанной статьи.
— Симл

1
Примечание. Нажатие кнопки «Сохранить» в подключении к удаленному рабочему столу создаст файл конфигурации Default.rdc. (Нажмите кнопку «Сохранить как», чтобы увидеть, в каком каталоге хранится файл.) Это файл для редактирования, если вы хотите использовать этот параметр по умолчанию. Или вы можете поместить его в другой файл .RDP, который вы открываете вручную, когда вам это нужно.
— Бампфер

3

Ни один из вариантов не работал для меня, так как у меня включен NLA. Вот способ изменить его с помощью PowerShell - полная история о том, как изменить свой пароль с истекшим сроком, когда вы не можете войти в RDP .

function Set-PasswordRemotely {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)][string] $UserName,
        [Parameter(Mandatory = $true)][string] $OldPassword,
        [Parameter(Mandatory = $true)][string] $NewPassword,
        [Parameter(Mandatory = $true)][alias('DC', 'Server', 'ComputerName')][string] $DomainController
    )
    $DllImport = @'
[DllImport("netapi32.dll", CharSet = CharSet.Unicode)]
public static extern bool NetUserChangePassword(string domain, string username, string oldpassword, string newpassword);
'@
    $NetApi32 = Add-Type -MemberDefinition $DllImport -Name 'NetApi32' -Namespace 'Win32' -PassThru
    if ($result = $NetApi32::NetUserChangePassword($DomainController, $UserName, $OldPassword, $NewPassword)) {
        Write-Output -InputObject 'Password change failed. Please try again.'
    } else {
        Write-Output -InputObject 'Password change succeeded.'
    }
}

Просто запустите Set-PasswordRemotelyи он задаст вам 4 вопроса - имя пользователя, старый пароль, новый пароль, контроллер домена и измените пароль для вас. Он работает и с подключенного к домену компьютера. Требуется подключение к DC.


Вы можете использовать ECHO% LOGONSERVER%, чтобы получить свой контроллер домена, это и PowerShell выше работал отлично
— Кевински
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.