В этой статье мы рассмотрим основные способы сменить пароль пользователя на удаленном компьютере в 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 (если у него есть сетевой доступ к контроллеру домена).
Приветствую. Вообще не позволяю кому то создавать или изменять пароль пользователю но на будущее буду знать
Привет! Ты забываешь про корпоративный сегмент, в котором пользователи обязаны менять пароли с определенной периодичностью (обычно задается через групповые политики).
Да и в локальной системе не стоит всегда сидеть под одним паролем — хотя бы раз в 2-3 месяца его стоит менять
Всем привет, есть такая проблема, терминальному пользователю система (сервер Win2012 R2+AD) в трее показывает уведомление о необходимости смены пароля, если пользователь его игнорирует, то на следующий день при истечении срока действия пароля пользователь не может сменить самостоятельно сменить себе пароль, и меню смены пароля вызвать ни как не получается. Это наблюдается только на виндовых клиентах, на OS X, linux, android, клиентах меню смены пароля доступно.
Через CTRL + ALT + END смена пароля работает? NLA аутентификация включена?
Как вариант, можно дать пользователям ярлычок на страницу для смены пароля на RDWeb сервере: https://winitpro.ru/index.php/2015/02/06/smena-istekshego-parolya-cherez-rds-v-windows-server-2012/
Спасибо! Помогла статья! Про сочетание Win+Ctrl+End не знал)
Спасибо! Удалось изменить пароль Windows Server 2012 через удаленное подключение citrix
(New-Object -COM Shell.Application).WindowsSecurity()
Респект
Лучший способ смены пароля в многоуровневой матрешке rdp при отсутствии прав доменного администратора
Главное не забыть перед этим снять галочку «Запретить смену пароля пользователем»
Есть еще один способ: на удаленном столе запускаем экранную клавиатуру, зажимаем на своей клавиатуре руками Ctrl и Alt и кликаем мышкой на удаленном столе на кнопку Del экранной клавиатуры
Супер! Помогла экранная клавиатура osk.exe
Спасибо!
В последнем случае есть еще один вариант. Я так нечаянно Hyper-V удаленный залочил.
Запускаем RDP клиент и создаем через Show option — Save as… rdp файл. Открываем его например через notepad и в конце добавляем строку enablecredsspsupport:i:0
Подключаемся, меняем пароль.