Просто указание: Вино имеет встроенную cmd утилиту, однако это не полностью функционально. Для выполнения его просто введите
wine cmd
Хитрость заключается в том, чтобы поместить переключатель пароля в конец командной строки, чтобы вы могли оставить его пустым. Это запустит xfreerdp
, чтобы запросить пароль вместо того, чтобы вводить его через командную строку.
$ xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p
старый интерфейс cli (v1.0.2)
$ xfreerdp -u oshiro -d company.com farm.company.com -t 3389 -p
ПРИМЕЧАНИЕ: Новый интерфейс командной строки доступен в предварительных выпусках, v1.1 + , поэтому обратите особое внимание на то, какую версию вы используете. Выполнение команды xfreerdp --version
покажет вам, какой из них. Также просмотрите раздел релизов в вики для получения дополнительной информации по каждому из них.
Вот пример моего подключения к серверу RDP.
$ xfreerdp --ignore-certificate -u smingolelli -d mydom -t 5000 rdp.mydom.com -p
connected to rdp.mydom.com:5000
Password:
Эта проблема в системе отслеживания проблем FreeRDP, озаглавленная: Запрос учетных данных - NLA # 1512 , содержала этот фрагмент того, как можно использовать zenity
для запроса user для имени пользователя и пароля с помощью диалоговых окон графического интерфейса пользователя, а затем запустите xfreerdp
с предоставленной информацией после этого.
$ xfreerdp /v:yourRDSfarmFQDN \
/u:$(zenity \
--entry \
--title="Domain Username" \
--text="Enter your Username") \
/p:$(zenity \
--entry \
--title="Domain Password" \
--text="Enter your _password:" \
--hide-text) \
/d:yourdomainname \
/f \
/cert-ignore
+clipboard
При выполнении вышеупомянутого диалогового окна пользователю открывались бы эти диалоговые окна. Они будут появляться по очереди.
Если вы укажете безопасность TLS, удаленный компьютер запросит пароль:
Xfreerdp --sec tls
Новый формат параметра:
/sec:tls
Я хотел бы расширить решение slm . Я хотел, чтобы в одно окно вводилась вся информация и позволяло мне указать RemoteApp за один раз, поэтому я с осторожностью построил то, что он предложил, и создал это.
Подсказка XFreeRDP
Код:
#!/bin/bash
# XFreeRDP RemoteApp W/ Prompt Script
# Version 0.3
# Description:
# XFreeRDP Remote App Script utilizing Zentity to populate variables
# Written by Jarrett Higgins 12-2015
OUTPUT=$(zenity --forms --title="Connection Information" \
--text="Enter information about your Remote Connection" \
--separator="," \
--add-entry="Server" \
--add-entry="Port (Default: 3389)" \
--add-entry="Domain (Optional)" \
--add-entry="Username" \
--add-password="Password" \
--add-entry="Remote App Name (Optional)")
OUTPUT_RESULTS=$?
if ((OUTPUT_RESULTS != 0)); then
echo "something went wrong"
exit 1
fi
Blank=""
Server=$(awk -F, '{print $1}' <<<$OUTPUT)
Port=$(awk -F, '{print $2}' <<<$OUTPUT)
if ["$Port" = "$Blank"]
then
Port="3389"
else
Port="$Port"
fi
Domain=$(awk -F, '{print $3}' <<<$OUTPUT)
Username=$(awk -F, '{print $4}' <<<$OUTPUT)
Password=$(awk -F, '{print $5}' <<<$OUTPUT)
App=$(awk -F, '{print $6}' <<<$OUTPUT)
if ["$App" = "$Blank"]
then
App="$App"
Title="$Server"
else
AppName="$App"
Title="$AppName on $Server"
App="/app:||$App"
fi
#zenity --info --title="Information Return" --text="$Server $Port $Domain $Username $Password $App"
xfreerdp /t:"$Title" /v:$Server:$Port /d:$Domain /u:$Username /p:$Password $App /cert-ignore /workarea +clipboard
Password=""
Характеристики:
Планируется:
Я использую его на своем ноутбуке #! ++ с большим успехом для подключения к моей компании, удаленным приложениям виртуальных машин и клиентским серверам. У меня нет опыта написания сценариев, поэтому, если у кого-то есть предложения или отзывы, я хотел бы их услышать.
Необходимо указать пустой параметр (без значения пароля). Попробуйте следующее:
sudo xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p
Если это не сработает, вы можете сделать это с помощью простого сценария bash.
Сохраните это как rdp.sh
:
#!/bin/bash
# Read Password
echo -n Password:
read -s password
echo
# Run Command
sudo xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p:$password
Затем сделайте файл исполняемым:
chmod +x rdp.sh
Запустите его:
./rdp.sh
Этот вопрос был задан и более подробно обсужден в вопросе github xfreerdp: https : //github.com/FreeRDP/FreeRDP/issues/1358
Идея сценария bash взята из: https://stackoverflow.com/questions/3980668/how-to-get-a-password- from-a-shell-script-без-повторения
Вы также можете использовать --from-stdin. Затем вам будет предложено ввести все необходимые значения, которые не были предоставлены.
Мне понравилось решение Jarretts, но с yad not zenity оно позволяет создавать поля со списком:
OUTPUT=$(yad --center --button="gtk-ok:0" --title "Remote Desktop" --form \
--field="Server:CB" "rds1.domain.local\!rds2.domain.local\!rds3.domain.local" \
--field="Port" "3389" \
--field="Domain" "DOMAIN.local" \
--field="Username" "" \
--field="Password:H" \
--field="Remote App Name" "")