В этой статье расскажем, как настроить сохранение паролей для RDP подключений в Windows и какие действия предпринять, если пароли не сохраняются, несмотря на все настройки (пароль каждый раз запрашивается заново).
Как сохранить пароль для RDP подключения в Windows?
По умолчанию Windows позволяет пользователям сохранять пароли для RDP подключений. Для этого в окне клиента Remote Desktop Connection (mstsc.exe) нужно ввести имя удаленного компьютера, учетные данные и отметить галочкой опцию “Разрешить мне сохранять учетные данные” (Allow me to save credentials). После нажатия кнопки “Подключить”, сервер RDP запрашивает пароль, который сохраняется в Windows Credential Manager, а не в .RDP файл.
При следующем подключении клиент автоматически получит сохраненный пароль из менеджера паролей Windows и использует его для аутентификации.
Если для компьютера имеется сохраненный пароль, в окне клиента будет указано:
При подключении к данному компьютеру будут использоваться сохранённые учетные данные. Эти учетные данные можно изменить или удалить.
Администраторы часто не рекомендуют пользователям сохранять пароли подключений в Windows. Например, в домене Active Directory предпочтительнее настроить SSO (Single Sign-On) для более безопасной аутентификации.
По умолчанию Windows не разрешает использовать сохраненный пароль для RDP подключения с компьютера в домене Active Directory к серверу, находящемуся в другом домене или рабочей группе. Несмотря на то, что пароль сохранен в Credentials Manager, Windows требует от пользователя вводить его заново. Также Windows запрещает использование сохраненного пароля для RDP, если подключение происходит под локальной учетной записью, а не доменной.
При попытке подключения с сохраненным паролем в таких случаях может появиться ошибка:
Your Credentials did not work
Your system administrator does not allow the use of saved credentials to log on to the remote computer CompName because its identity is not fully verified. Please enter new credentials.
Или (в русской версии Windows 10):
Недопустимые учетные данные
Системный администратор запретил использовать сохраненные учетные данные для входа в систему удаленного компьютера CompName, так как его подлинность проверена не полностью. Введите новые учетные данные.
Windows считает такое подключение небезопасным, так как между данным компьютером и удаленным сервером отсутствуют доверительные отношения.
Чтобы изменить эти настройки на компьютере, с которого выполняется RDP подключение:
1. Откройте редактор локальной GPO с помощью Win + R и команды gpedit.msc
2. Перейдите в раздел Computer Configuration –> Administrative Templates –> System –> Credentials Delegation (Конфигурация компьютера -> Административные шаблоны -> Система -> Передача учетных данных).
3. Найдите политику под названием Allow delegating saved credentials with NTLM-only server authentication (Разрешить передачу сохраненных учетных данных с проверкой подлинности сервера только NTLM).
4. Дважды щелкните по политике, включите её (Enable) и нажмите кнопку “Показать” (Show).
5. Укажите список удаленных компьютеров, для которых можно использовать сохраненные пароли для RDP подключения. Список должен быть в следующих форматах:
TERMSRV/server1
— разрешает подключение к одному конкретному серверу;
TERMSRV/*.softcomputers.org
— разрешает подключение ко всем серверам в домене softcomputers.org;
TERMSRV/*
— разрешает подключение к любым серверам.
Примечание. TERMSRV необходимо писать заглавными буквами, а имя сервера должно полностью совпадать с тем, что указано в настройках клиента RDP.
Также добавьте ваши значения TERMSRV/ в параметр Allow Delegating Saved Credentials (“Разрешить передачу сохранённых учетных данных”).
Эти настройки можно задать в реестре с помощью следующих параметров:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation] "AllowSavedCredentialsWhenNTLMOnly"=dword:00000001
"AllowSavedCredentials"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowSavedCredentialsWhenNTLMOnly] "1"="TERMSRV/*"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowSavedCredentials] "1"="TERMSRV/*"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Windows\CredentialsDelegation] "AllowSavedCredentialsWhenNTLMOnly"=dword:00000001
"AllowSavedCredentials"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Windows\CredentialsDelegation\AllowSavedCredentialsWhenNTLMOnly] "1"="TERMSRV/*"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Windows\CredentialsDelegation\AllowSavedCredentials] "1"="TERMSRV/*"
Убедитесь, что политика Deny delegating saved credentials (“Запретить передачу сохраненных учетных данных”) отключена или не настроена. Запрещающие политики имеют более высокий приоритет, чем разрешающие.
Также следует отключить параметр Network access: Do not allow storage of passwords and credentials for network authentication (Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options). Если этот параметр включен, при попытке сохранить пароль будет возникать ошибка:
Credential Manager Error
Unable to save credentials. To save credentials in this vault, check your computer configuration.
Error code: 0x80070520
Error Message: A specified logon session does not exist. It may already have been terminated.
Сохраните изменения и обновите групповые политики с помощью команды gpupdate /force.
Теперь при RDP подключении клиент mstsc сможет использовать сохранённый пароль.
Чтобы просмотреть список сохранённых паролей для RDP подключений, используйте команду:
cmdkey /list ^| findstr "target=TERMSRV"
Чтобы удалить сохраненные пароли, выполните команду:
For /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr "target=TERMSRV"') do cmdkey /delete %H
Редактор локальных групповых политик позволяет изменить настройки только для одного компьютера. Если нужно, чтобы политика действовала на многие компьютеры в домене, используйте доменные политики через консоль gpmc.msc.
Что делать, если пароль для RDP подключения в Windows не сохраняется?
Если настройки выполнены по инструкции, но при каждом подключении система требует ввести пароль, проверьте следующие моменты:
1. В настройках RDP убедитесь, что опция “Всегда запрашивать учетные данные” (Always ask for credentials) не выбрана.
2. Если используется сохранённый RDP файл, проверьте, что параметр “prompt for credentials” равен 0 (prompt for credentials:i:0).
3. В редакторе локальной политики gpedit.msc перейдите в раздел Конфигурация компьютера -> Компоненты Windows -> Службы удаленных рабочих столов -> Клиент подключения к удаленному рабочему столу (Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Connection Client). Параметры “Запретить сохранение паролей” (Do not allow passwords to be saved) и Prompt for credentials on the client computer должны быть не заданы или отключены. Проверьте также результирующую политику на вашем компьютере с помощью команды gpresult.
4. Удалите все сохраненные пароли в менеджере паролей Windows (Credential Manager). Запустите control userpasswords2 и перейдите на вкладку “Дополнительно”, затем нажмите на кнопку “Управление паролями”. В открывшемся окне выберите “Учетные данные Windows” и удалите все сохраненные RDP пароли (начинаются с TERMSRV/…).
Из этого окна можно вручную добавить учетные данные для RDP подключения. Имя сервера должно быть указано в формате TERMSRV\server_name1. После очистки истории RDP подключений на компьютере не забудьте удалить сохраненные пароли.
Из этого окна вы можете самостоятельно добавить учетных данные для RDP подключений. Обратите внимание, что имя удаленного RDP сервера (компьютера) нужно указывать в формате TERMSRV\server_name1. При очистке истории RDP подключений на компьютере, не забывайте удалять сохраненные пароли.
Подключение с сохраненным паролем не будет работать, если сервер RDP давно не обновлялся, и при подключении возникает ошибка CredSSP encryption oracle remediation.
После выполнения всех действий пользователи смогут использовать сохраненные пароли для RDP подключений.
Политика проверки подлинности на сервере не допускает подключения с сохраненными учетными данными
При подключении к RDP хосту с использованием сохраненного пароля может появиться ошибка:
Windows Security
Your credentials did not work
The server’s authentication policy does not allow connection requests using saved credentials. Please enter new credentials.
Для устранения ошибки на удаленном сервере необходимо отключить параметр “Always prompt for password upon connection” в разделе Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Security.
Если данная политика включена, сервер RDP всегда будет запрашивать пароль у клиента.
Этот параметр можно отключить через реестр:
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fPromptForPassword /t REG_DWORD /d 0 /f
Credential Guard в Защитнике Windows может блокировать использование сохраненных учетных данных
После обновления до Windows 11 22H2 пользователи часто сообщают, что не могут использовать сохраненные пароли для RDP подключений:
Windows Security: Your credentials did not work
Windows Defender Credential Guard does not allow using saved credentials. Please enter your credentials.
В Windows 10 1607 была представлена функция Windows Defender Remote Credential Guard для защиты учетных данных при RDP подключениях. В обновлении 22H2 по умолчанию разрешается использование сохраненных учетных данных только при аутентификации с помощью Kerberos. Если Kerberos использовать невозможно (например, контроллер домена недоступен или подключение происходит к рабочей группе), Remote Credential Guard блокирует использование NTLM.
Чтобы отключить Credential Guard, выполните команду в реестре:
New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\LSA" -Name "LsaCfgFlags" -PropertyType "DWORD" -Value 0 -Force