Автоматизация подключения удаленного рабочего стола

Мы используем много удаленных рабочих столов в нашей среде разработки, и есть много серверов, развернутых в нескольких средах. Утомительно запоминать их IP-адреса, имена пользователей и пароли. Я хочу написать небольшую утилиту с кнопками на нем. При нажатии я хочу запустить эти удаленные рабочие столы, автоматически выбирая имена пользователей и пароли из некоторого списка.

Я знаю, что есть эквивалент командной строки для MS Remote Desktop: mstsc. Этот вопрос предлагает сделать это следующим образом:

cmdkey /generic:TERMSRV/"computername or IP address" /user:"username" /pass:"password"
mstsc /v:"computer name or IP"

Я запускаю первую строку, и она говорит, что учетные данные успешно добавлены. Затем, когда я запускаю вторую строку, он просто запускает Remote Desktop Connection для указанного IP-адреса и запрашивает имя пользователя и пароль. Я хотел бы просто открыть удаленно подключенный рабочий стол по указанному IP-адресу, автоматически применяя учетные данные, указанные в cmdkey.

  • Что здесь не так? Возможно ли использовать такой скрипт PowerShell?
  • Могу ли я вызвать этот скрипт через HTML-страницу (поскольку есть много других ресурсов, которые я буду размещать на веб-странице, которые будут служить единственными точками для наших разработчиков, поэтому мы не будем тратить время и силы на их поиск каждый раз, когда мы хотите их)? Возможно ли это путем регистрации приложения по схеме URI?
  • Есть ли другой (стандартный) способ?

Ответ 1

Проблема в вашей попытке - параметр /generic.

Согласно официальному сайту cmdkey, /generic

определяет имя компьютера или домена, с которым будет связана эта запись.

В моем примере я назову компьютер Computer01.

Вы хотите учетные данные, связанные с TERMSRV/Computer01? (Как сказал ваш пример /generic:TERMSRV/"computername or IP address ")

Нет, вы хотите, чтобы он ассоциировался с обычным именем компьютера Computer01.

Затем вы должны удалить TERMSRV/.

Рабочий результат:

cmdkey /generic:"computername or IP" /user:"username" /pass:"password"

На другие ваши вопросы:

  1. Смотрите ответ выше
  2. Я не знаю, возможно ли это только с помощью HTML. Я так не думаю. Но я также реализую некоторые сценарии PowerShell в ASP.NET. Это работает.
  3. Смотрите ответ выше.

Ответ 2

С 2013 года многое изменилось. Многие системные операторы уже предложили использовать готовые инструменты, которые делают это. Еще в 2013 году магазин Windows не был таким уж замечательным местом (* мое мнение). Но теперь все в порядке.

В магазине есть собственное приложение Microsoft для удаленного рабочего стола. Приложение является универсальным, то есть оно работает на ПК, мобильных телефонах и голографических устройствах.

Что хорошего? Microsoft сделала такое же приложение доступным на Android. Я пробовал для ПК и Android. Оба прекрасно работают.

Так что попробуйте. Сейчас я постоянный пользователь этих приложений.