Отталкиваясь от описания можно заставить KeePass открывать RDP соединение с автоматической авторизацией. Вообще сам mstsc не поддерживает, но можно заранее записать креды, а потом удалить, собственно эта строчка именно это и делает
cmd://powershell.exe "cmdkey /add:{BASE:RMVSCM} /user:{USERNAME} /pass:{PASSWORD}; mstsc /v:{BASE:RMVSCM}; timeout 10; cmdkey /delete:{BASE:RMVSCM}"
Вариант с подстановкой адреса сервера как домена для имени пользователя
cmd://powershell.exe "cmdkey /add:{BASE:RMVSCM} /user:{BASE:RMVSCM}\{USERNAME} /pass:{PASSWORD}; mstsc /v:{BASE:RMVSCM}; timeout 10; cmdkey /delete:{BASE:RMVSCM}"
Таймаут нужен для того, чтобы успеть пройти авторизацию или подключение.
Скорее всего не прокатит для тех, у кого стоит запрет сохранения пароля на стороне сервера и также не поддерживается шлюз
Up
Да, не прокатит, а вот со шлюзом тоже можно настроить.
cmd://powershell.exe "cmdkey /add:{BASE:RMVSCM} /user:{USERNAME} /pass:{PASSWORD}; cmdkey /add:{S:rdpGateway} /user:{USERNAME} /pass:{PASSWORD}; mstsc /v:{BASE:RMVSCM} /g:{S:rdpGateway}; timeout 10; cmdkey /delete:{BASE:RMVSCM};cmdkey /delete:{S:rdpGateway}"
Здесь мы добавляем учетку сразу для шлюза и для сервера, если они совпадают. При этом адрес шлюза записан на вкладке Advanced в String Fields
Лично я сделал отдельную схему для вариантов со шлюзом - grdp
UP
Есть косяк с паролями, которые содержат знак $
Обновление 12/10/2023. Вылез косяк с нестандартными портами, новый вариант выглядит так:
cmd://powershell.exe -NoProfile -WindowStyle Hidden -Command "$user=\"{T-REPLACE-RX:#{BASE:HOST}\{USERNAME}#(.*)\\(.*)\\(.*)#$2\$3#}\"; cmdkey /add:{BASE:HOST} /user:$user /pass:\"{PASSWORD}\"; mstsc /v:{BASE:RMVSCM}; timeout 10; cmdkey /delete:{BASE:HOST}"
И
cmd://powershell.exe -NoProfile -WindowStyle Hidden -Command "$user=\"{T-REPLACE-RX:#{BASE:HOST}\{USERNAME}#(.*)\\(.*)\\(.*)#$2\$3#}\"; cmdkey /add:{BASE:HOST} /user:$user /pass:\"{PASSWORD}\"; cmdkey /add:{S:rdpGateway} /user:$user /pass:\"{PASSWORD}\"; mstsc /v:{BASE:RMVSCM} /g:{S:rdpGateway}; timeout 10; cmdkey /delete:{BASE:HOST};cmdkey /delete:{S:rdpGateway};"
Поясню, конструкция:
"{T-REPLACE-RX:#{BASE:HOST}\{USERNAME}#(.*)\\(.*)\\(.*)#$2\$3#}"
Обманка, подставляет хост как домен, в том случае, если домен не указан в имени пользователя. Я до сих пор не понимаю почему оно работает, я вышел на нее случайным образом.
А конструкция:
-NoProfile -WindowStyle Hidden -Command
Скрывает окно сразу, в диагностических целях можно не добавлять
P.S. даже в кавычках, пароль не принимается со знаком $
Комментариев нет:
Отправить комментарий