Зміна минулого пароля через Remote Desktop Web Access в Windows Server 2016/2012 R2

У цій статті ми покажемо, як віддалені користувачі самостійно можуть змінювати свої минулі паролі через RDP-підключення до ферми термінальних серверів Remote Desktop Services (RDS) на Windows Server 2016/2012 R2.

У Windows Server 2012 R2 and Windows 8.1 за замовчуванням включений механізм аутентифікації NLA (Network Level Authentication, докладніше про нього тут), який не дозволяє підключитися по RDP користувачам з вичерпаним терміном дії пароля (ви, звичайно, можете відключити NLA - ссилка1, ссилка2, але це не добре з точки зору безпеки). При спробі підключитися до сервера RDSH (Remote Desktop Session Host) з обліковим записом користувача, пароль якого закінчився, з'являється таке повідомлення про помилку:
An authentication error has occurred.
The Local Security Authority can not be contacted
Remote computer: xxxxxx
This could be due to an expired password
Please update your password if it has expired.
Таким чином, при використанні NLA, проблема зміни минулого пароля через RDP може стати практично нерозв'язною для віддалених користувачів, у яких відсутня можливість вибрати входу в мережу. Можна звичайно, попросити користувачів заздалегідь міняти свій пароль безпосередньо в RDP сесії, але, як правило, це не завжди спрацьовує через елементарну забудькуватості користувачів.

У Windows Server 2012 / R2 і вище у віддалених користувачів з'явилася можливість самостійно скидати свій пароль (поточний пароль або пароль з вичерпаним терміном дії) через спеціальну веб-сторінку на сервері RD Web Access. Процес зміни пароля виглядає так: користувач заходить під своїм обліковим записом на веб-сторінку реєстрації на сервері з роллю RD Web Access і за допомогою спеціальної aspx форми змінює свій пароль.

Примітка. У Windows Server 2003 користувачі домену могли змінити свій пароль через невелике веб-додаток IISADMPWD (Офіційно, втім, може не підтримуватися).

Функціонал віддаленої зміни пароля доступний на сервері з роллю Remote Desktop Web Access (RD Web Access), але за замовчуванням ця функція відключена. Для зміни пароля використовується сценарій в файлі password.aspx, який знаходиться в каталозі C: \ Windows\ Web\ RDWeb\ Pages\ en-US.

У російській версії Windows Server (без language pack) шлях до файлу password.aspx буде відрізнятися і виглядати так: C: \ Windows \ Web \ RDWeb \ Pages \ ru-RU.

Щоб активувати цю функцію зміни пароля, потрібно на сервері з налагодженою роллю Remote Desktop Web Access відкрити консоль управління веб-сервером IIS (IIS Manager), Перейти в розділ [Server Name] -> Sites -> Default Web Site -> RDWeb -> Pages і відкрити розділ з настройками програми (Application Settings).

У правій панелі знайдіть параметр з ім'ям PasswordChangeEnabled і змініть його значення на true.

Перезапустіть IIS з консолі або за допомогою команди IISRESET.

Щоб перевірити доступність сторінки зміни, перейдіть на веб-адреса:

https: // [RD-WEB-1] /RDWeb/Pages/en-US/password.aspx

Після успішної зміни пароля користувача має з'явиться повідомлення:

Your password has been successfully changed.

Натисніть ОК, і користувач буде перенаправлено на сторінку входу RD Web.

Якщо пароль користувача не відповідає пральний політиці домену, з'явиться вікно з попередженням:

Your new password does not meet the length, complexity, or history requirements of your domain. Try choosing a different new password.

Ви можете використовувати цей спосіб зміни пароля на Remote Desktop Web Access тільки якщо на RDWA сервері включена аутентифікація Forms Authentication. При використанні методу Windows Authentication, зміна пароля через форму RD Web неможлива.

Тепер при спробі підключитися до веб сервера RD Web Access з вичерпаним паролем користувач буде перенаправлений на веб-сторінку password.aspx, на якій йому буде запропоновано змінити пароль.

Порада. Аналогічний функціонал для зміни пароля в Windows Server 2008 R2 з RD Web Access Role може бути доступний після установки спеціального патча - KB 2648402.

Ви можете додати посилання на сторінку з формою зміни пароля можна безпосередньо в веб-форму входу на сервер RDWeb. Завдяки цьому користувач в будь-який момент може самостійно змінити свій пароль, не чекаючи закінчення його терміну дії.

Додамо посилання на файл password.aspx на сторінку входу в систему (створіть копію файлу password.aspx перед редагуванням).

  1. На сервері RDWeb знайдіть і відкрийте в будь-якому тестовому редакторі (я віддаю перевагу Notepad ++) файл C: \ Windows \ Web \ RDWeb \ Pages \ en-US \ login.aspx
  2. перейдіть на 583 рядок і вставте в неї наступний код:
    Password Reset Utility
  3. Збережіть зміни у файлі login.aspx, перезапустіть сайт IIS і перевірте що на сторінці реєстрації на термінальному сервері з'явилося посилання на сторінку зміни пароля.

Порада. До речі кажучи, ми раніше вже розглядали, як реалізувати зміну пароля користувача через OWA в Exchange.
Тепер віддалені користувачі зможуть змінити минулий пароль на Remote Desktop сервері без втручання адміністратора.