В этой статье мы рассмотрим основные способы сменить пароль пользователя на удаленном компьютере в RDP сессии. В качестве удаленного хоста может выступать как Windows Server с настроенной на нем ролью Remote Desktop Services, так и рабочая станция с десктопной Windows 10, в настройках которой разрешено одно или множественные RDP подключения.
Основная проблема, на которую натыкаются пользователи — в окне терминального (RDP) подключения к удаленному серверу нельзя вызвать привычную форму смены пароля нажатием сочетания клавиш Ctlr + Alt + Delete. Эта комбинация клавиш не передается в сессию RDP, а выполняется в вашей локальной операционной системе.
В Windows Server 2003/2008 можно было сменить пароль пользователя по RDP, нажав кнопку Пуск и выбрав пункт Windows Security -> Change Password.
Но в более новых версиях, в том числе в Windows Server 2016/2019 и Windows 10 пункт меню Windows Security (Безопасность Windows) отсутствует, поэтому этот способ смены пароля не применим.
Смена пароля в RDP с помощью комбинации CTRL + ALT + END
В современных версиях Windows для вызова окна Windows Security в RDP сессии нужно использовать сочетание клавиш Ctlr + Alt + End. Эта комбинация является аналогом комбинации Ctlr + ALt + Delete, но работает только в окне RDP подключения. В открывшемся меню выберите Change a password.
И в стандартном диалоговом окне можете изменить свой пароль (укажите старый пароль и два раза новый).
Смена пароля с помощью экранной клавиатуры
Если вы подключены к удаленному рабочему столу хоста Windows через несколько промежуточных RDP сеансов, вы не сможете использовать комбинацию CTRL+ALT+END для смены пароля пользователя. Нажатие этих клавиш будет перехвачено первым RDP окном. В таких случаях вы можете воспользоваться для смены пароля пользователя стандартной экранной клавиатурой Windows (On-Screen Keyboard).
- Запустите On-Screen Keyboard в целевом RDP сеансе (проще всего набрать
osk.exe
в меню Пуск); - Перед вами появится экранная клавиатура;
- На своей физической (локальной) клавиатуре зажмите клавиши
CTRL+ALT
(это должно отобразиться на экране), и затем на экранной клавиатуре нажмите мышкой по кнопкеDel
; - В результате в удаленную RDP сессию будет отправлено сочетание клавиш Ctrl+Alt+Del, и откроется стандартное окно безопасности Windows из которого можно сменить пароль.
Если новый пароль не соответствует требованиям, появится сообщение:
Не удается обновить пароль. Введенный пароль не обеспечивает требований домена к длине пароля, его сложности или истории обновления.
Также обратите внимание, что в доменной политике (или в Password Settings objects) обычно настраивается параметр Minimum password age, который запрещает пользователю самостоятельно менять пароль чаще указано в этом параметре GPO.
Узнать, когда истекает пароль пользователя можно с помощью PowerShell:
Get-ADUser -Identity kbuldogov -Properties msDS-UserPasswordExpiryTimeComputed | select-object @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") }}
Вызов окна смены пароля в RDP сессии через VBS/PowerShell
Вы можете вызвать диалоговое окно Windows Security в RDP сессии программно с помощью встроенных инструментов Windows: VBScript, PowerShell или shell ярлыка.
Например, создайте на рабочем столе файл WindowsSecurity.vbs со следующим кодом VBScript:
set objShell = CreateObject("shell.application")
objshell.WindowsSecurity
При двойном щелчке по этому vbs файлу перед вами откроется стандартная форма, через которую можно изменить пароль.
На RDS сервере вы можете поместить этот vbs файл на общий рабочий стол (
%SystemDrive%\Users\Public\Desktop\
) или скопировать его на рабочие столы пользователей через GPO.
Аналогичное окно смены пароля можно вызвать и из PowerShell. Воспользуйтесь командой:
New-Object -COM Shell.Application).WindowsSecurity()
Есть еще вариант создания ярлыка Windows Explorer со следующей ссылкой:
C:\Windows\explorer.exe shell:::{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}
Смена пароля через Remote Desktop Web Access
Если вы используете доступ к RDS серверам через роль Remote Desktop Web Access (RDWA), вы можете включить возможность смены истекшего пароля на веб-странице входа RDWA (подробнее это описано здесь).
CredSSP NLA и смена пароля через RDP
Есть одна важная особенность, касающаяся смены истекшего пароля пользователя по RDP, связанна с опцией Network Level Authentication (NLA) и протоколом Credential Security Support Provider (CredSSP). По умолчанию CredSSP с NLA для RDP включен во всех версиях Windows, начиная с Windows Server 2012/Windows 8. NLA обеспечивают защиту RDP сервера за счет выполнения аутентификации пользователя до установки RDP сеанса с сервером.
Если у пользователя истек пароль, или администратор AD через атрибуты пользователя включил ему опцию userAccountControl “Требовать смену пароля при первом входе в систему/ User must change password at next logon ” (чаще всего это опцию включают для новых учетных записей AD), то при входе в систему по RDP появится ошибка:
Remote Desktop Connection You must change your password before logging on the first time. Please update your password or contact your system administrator or technical support.
Подключение к удаленному рабочему столу Перед первым входом в систему необходимо сменить пароль. Обновите пароль либо обратитесь к вашему системному администратору или в службу технической поддержки.
Как результат — пользователь не сможет подключиться к RDP серверу и сменить пароль.
В этом случае, чтобы пользователь мог самостоятельно сменить пароль, можно:
- Настроить RDWA со страницей смены пароля как описано выше;
- Отключить NLA на RDP сервере (не рекомендуется!!!, т.к. существенно снижает уровень безопасности для RDP подключений) и использовать для подключения .rdp файл со строкой enablecredsspsupport:i:0;
- Создать отдельный сервер для смены паролей пользователей. На этот сервер не нужно устанавливать роль Remote Desktop Session Host, не нужно добавлять пользователей в локальную группу доступа Remote Desktop Users, но нужно отключить NLA. В этом случае пользователи смогу сменить пароль, но не смогут войти на сервер по RDP
- Пользователь может изменить свой пароль удаленно через PowerShell (если у него есть сетевой доступ к контроллеру домена).