“Mac için Uzak Masaüstü Bağlantısı” için komut satırı bağımsız değişkenleri?


19

Bunun mümkün olduğunu gösteren herhangi bir belge bulamadım, ancak bağlanmak istediğiniz ana bilgisayar adını Microsoft'un Mac için Uzak Masaüstü Bağlantısına komut satırı bağımsız değişkeni olarak iletmenin herhangi bir yolu var mı?

İlgilenenler için bazı arka plan bilgileri:

Sistem yöneticisiyim ve Windows 7 dizüstü bilgisayardan birincil çalışma bilgisayarım olarak MacBook Air'e geçme aşamasındayım. Sunuculara bağlanmak için sık sık Uzak Masaüstü İstemcisi'ni ve Windows'ta klavye başlatıcısı olarak Launchy'yi kullanıyorum. Anahtar kelime olarak "rdp" atadım, bu yüzden Launchy'yi çağırdığımda, "rdp {tab} sunucuadı" yazın, sekme anahtarından sonra metni ana bilgisayar adı olarak mstsc.exe'ye geçirir (yani, mstsc.exe / v: sunucuadı) . Bu, uzak masaüstü istemcisinin belirtilen ana bilgisayar adına bir oturum açmasına neden olur.


2
Ne yazık ki, Uzak Masaüstü İstemcisi'ne komut satırı erişimi veya AppleScript erişimi yok. CoRD geliştiricisine CoRD'ye eklemeyi düşünüp düşünmeyeceğini sordum. Ve MS'in RDP istemcisinden daha iyi bir müşteri için fişim var : cord.sourceforge.net . :)
Ian C.

@Ian C., geçmişte CoRD'yi kullanıyordum, kişisel MacBook'umda ... birkaç yıl geçmiş gibi geliyor. Microsoft'un istemcisinin istikrarı ve daha "cilalı" görünümü ile karşılaştırıldığında gerçekten memnun değildi. Aslında sadece tekrar indirdim, çünkü ekran görüntülerinden birinde fark ettim, rdp: // linklerini ele almanın bir sözü vardı. Bu tam olarak aradığım şeyi yapıyor, bu yüzden beni CoRD'ye geri yönlendirdiğiniz için teşekkürler! Alfred'de "open rdp: // {query}" yürüten bir "kabuk komut dosyası" uzantısı ayarlayabildim. Şerefe!
billc

Vay canına. Hatta rdp: // links işledi fark etmedi. Bu harika. Yorumumu cevaplayacağım. :)
Ian C.

Yanıtlar:


11

Microsoft Uzak Masaüstü İstemcisi için komut satırı erişimi yoktur. Ancak ücretsiz ve en mükemmel CoRD uzak masaüstü istemcisi , rdp://seçtiğiniz bir başlatıcıdan veya hatta openkomut satırından aramanıza izin veren bağlantıları işler .

Github kordon belgeleri URL açık tam yapılandırılmış RDP oturumlara parametreleri kodlanmış nasıl kullanabileceğinizi ortaya koymaktadır.

rdp: // URL sözdizimi

CoRD, OS X içindeki birçok yerden kullanabileceğiniz rdp: // URL'lerini işler. Maalesef, Finder'ın VNC URL'lerinin başlatılmasını destekleyen "Sunucuya Bağlan" iletişim kutusunu genişletmenin bir yolu yoktur, bu nedenle CoRD'yi buradan başlatamayız . Apple bunu değiştirirse (veya herhangi biri uzatmanın bir yolunun farkındaysa) bunu duymak isteriz.

Saved Servers

rdp://URL'leri mevcut kaydedilmiş sunucularla kullanmak istiyorsanız (0.5.3 itibariyle) yapabilirsiniz! Etiketi bir ana makine adı yerine kullanmanız yeterlidir:

open rdp://label

Yeni Sunucular

Bir kabuktan (Terminal kullanarak):

open rdp://hostname

URL üzerinden tam olarak yapılandırılmış bir oturum başlatmak için ek parametreler kullanılabilir:

open rdp://[username[:password]@]hostname[:port][/domain][?parameters]

Aşağıdaki parametreler oturum için bir sorgu dizesi aracılığıyla ayarlanabilir (0.5.2 itibariyle):

  • screenDepth ### [8|16|24|32]
  • screenWidth <width in pixels>
  • screenHeight <height in pixels>
  • consoleSession ### [true|false|yes|no]
  • fullscreen ### [true|false|yes|no]
  • windowDrags ### [true|false|yes|no]
  • drawDesktop ### [true|false|yes|no]
  • windowAnimation ### [true|false|yes|no]
  • themes ### [true|false|yes|no]
  • fontSmoothing ### [true|false|yes|no]
  • forwardDisks ### [true|false|yes|no]
  • forwardPrinters ### [true|false|yes|no]
  • forwardAudio ### [0|1|2]
    • 0 - Forward Audio to the Local Machine (Currently not used since CoRD doesn't present audio)
    • 1 - Leave Audio at the Remote Machine
    • 2 - Disable Audio at both Machines

Misal

open rdp://jsmith:securePassword@hostname.bigco.com/BigCoDomain?screendepth###24\&consoleSession###true\&themes###false\&screenWidth###1280\&screenHeight###800

Not:

Komut satırından ve işaretlerini (&) kullanırken, bunların ters eğik çizgi () ile birlikte kullanılması gerekir. İki nokta üst üste (:), aynı etki için ve işareti kullanılmadan kaçmak zorunda kalmadan kullanılabilir.

Özel karakterleri, @,:, & vb. Olan şifrelerin URL Kodlama Formatına göre kodlanması gerekir

Komut Satırı Kullanımı

CoRD aşağıdaki komut satırı seçeneklerini destekler: -host -port -u -d -p -a [8 | 16 | 24 | 32] ayarlanan ekran derinliği -genişlik ayarlanan ekran çözünürlüğü genişliği -yükseklik ayarlanan ekran çözünürlüğü yüksekliği

Misal

/Applications/CoRD.app/Contents/MacOS/CoRD -host example.com -port 3389 -u username

Uyarılar

CoRD'nin komut satırından bu şekilde başlatılması yeni bir CoRD örneğinin açılmasına neden olur. Bunun bir belirtisi birden fazla Dock simgesidir. Bu, birleşik oturumlar vb. Dahil olmak üzere birçok CoRD güçlü noktasının etkinliğini geçersiz kılar veya azaltır. Bu nedenle, oturumları başlatmak için open komutunu ve rdp: // URL'lerini kullanmanızı öneririz.

resim açıklamasını buraya girin


1
Çok komik! Siz de cevaplarken kendi sorumu yanıtlıyordum. Yardımın için tekrar teşekkürler!
billc

Göre kordon GitHub sayfasında bu proje artık 2015 16 Ağustos itibariyle muhafaza ediliyor
kenorb

Yazık. İyiydi.
Ian C.

Bu yanıt eski: Mac için Microsoft Uzak Masaüstü'nün daha yeni sürümleri destek rdp://bağlantıları (farklı bir düzen kullanıyor olsa da). Jack Douglas'ın cevabına bakınız.
chrstphrchvz

7

CoRD'yi sevmiyorum. Çalışıyor, ancak periyodik olarak pul gibi görünüyor. Microsoft RDP için kendi CLI betiğimi yaptım. Microsoft Uzak Masaüstü İstemcisi'ne 2 bağımsız değişken aktarmayı mümkün kılmak için bir sed + open bash betiği oluşturdum. Bir ana bilgisayar adı iletebilirim ve Server 2003 ana bilgisayarlarının konsoluna bağlanmak için bir anahtar atabilirim.

Bunun daha ileriye götürülebileceğini biliyorum. Örneğin:

  • Bash komut dosyam, yollardaki veya dosya adlarındaki boşluklarla çalışmaz :)
  • .RDP dosyasındaki herhangi bir XML verisinin sed ile değiştirilebileceğini hayal ediyorum.
  • Konsola bağlanmak için bir anahtarın çeşitli varyasyonlarını ekledim, çünkü yaşlıyım ve hangisini sevdiğimi hatırlamıyorum. Bahse girerim, bash komut dosyalarının kullandığımdan daha zarif bir çözümü vardır.

İşte nasıl yaptım:

  1. Tercih ettiğiniz tüm ayarlarla bir Microsoft RDP şablon profili oluşturun. 'Template.rdp' olarak adlandırın. Sahte bir sunucuya bağlanmasını sağlayın. Bir sunucu adı 'zzxyzyz' kullandım. Bu, 'sed' komutunda gerçek sunucu adı aramak ve onun yerine geçmek için dize olarak kullanılır.
  2. Template.rdp dosyasını bir temp.rdp dosyasına kopyalamak için bir bash betiği oluşturun, sonra temp.rdp dosyasını betiği çağırırken iletilen istenen ana bilgisayar adıyla değiştirin. Benim bash betiğime 'rdp.sh' adını verdim.
  3. '~ / .Bash_profile' öğenizi 'rdp.sh' için bir diğer ad içerecek şekilde değiştirin
  4. Bh komut dosyasını yürütülebilir yapın: chmod + x rdp.sh
  5. Bob'un amcası

Benim bash betiğimin içeriği :

    #! /bin/bash
rdpTemplateFile='/Users/levi/Dropbox/RDC_Connections/RDS/template.rdp'
rdpTempRDP='/Users/levi/Dropbox/RDC_Connections/RDS/t.rdp'
rdpRunCommand="/Applications/Remote Desktop Connection.app/Contents/MacOS/Remote Desktop Connection"
rdpHost=${1}

if [ "${2}" = "/console" ] ; then
    rdpHost="${rdpHost} /console";
    echo "rdpHost is: " ${rdpHost}
fi

if [ "${2}" = "-console" ] ; then
    rdpHost="${rdpHost} /console";
    echo "rdpHost is: " ${rdpHost}
fi

if [ "${2}" = "-admin" ] ; then
    rdpHost="${rdpHost} /console";
    echo "rdpHost is: " ${rdpHost}
fi

cp -f ${rdpTemplateFile} ${rdpTempRDP}

sed -i '' "s|zzxyzyz|${rdpHost}|g" ${rdpTempRDP}

open -na "${rdpRunCommand}" --args ${rdpTempRDP}


.Bash_profile dosyasına takma ad eklendi (Bu benim rdp.sh komut dosyamın ana dizinimde olduğunu varsayar, ~ /)

alias rdp=~/rdp.sh

Komut dosyasını yürütülebilir yapın:

sudo chmod +x rdp.sh

Komut dosyasını çalıştırın:
İşte konsol anahtarını içeren bir örnek. Komut dosyasında neyin t.rdp dosyasına alınacağını gösteren bir hata ayıklama satırı bıraktım.

LeviMAC>rdp MyServer -console
rdpHost is:  MyServer /console
[~/]
LeviMAC>

Bu kavramın işe yaramasını sağladım, ancak sadece bir değişiklikten sonra. open -na "/Applications/Microsoft Remote Desktop.app/Contents/MacOS/Microsoft Remote Desktop" path/to/profile.rdp
RDP'yi

6

Bunun ne zaman değiştiğini bilmiyorum, ancak Microsoft Uzak Masaüstü İstemcisi rdp: // bağlantılarını şimdi işliyor:

Microsoft Uzak Masaüstü, istemciyi başlatırken kullanılan önceden yapılandırılmış öznitelik ayarlarını depolamak için rdp: // query_string URI şemasını kullanır. Sorgu dizeleri, URL'de sağlanan tek veya bir RDP özniteliğini temsil eder. RDP nitelikleri "ve" işareti (&) ile ayrılır.

Örneğin, bir PC'ye bağlanırken, dize:

RDP: // tam% 20address = s: mypc: 3389 ve audiomode = i: 2 ve devre dışı% 20themes = i: 1

Tüm öznitelikler Uzak Masaüstü İstemcisi URI Düzeni Desteği TechNet sayfasında belgelenmiştir .


Bazı örnek URL'leri görmek isterdim. Yerel bağlantı noktası 3389'u bir Windows makinesine yönlendirdim ve resmi Microsoft Uzak Masaüstü uygulamasını kullanarak "et" kullanıcısı olarak bağlandım. Ancak, hata vermeyen bir URL oluşturamıyorum.
Bruno Bronosky

Localhost yerine 127.0.0.2 kullanmayı deneyin?

1
Şifrelerin nasıl saklanacağı / şifreleneceği hakkında herhangi bir fikriniz var mı?
Bruno Bronosky

1
Parolayı şu anda yaptığım şey Microsoft Uzak Masaüstü (Mac için) uygulamasına kaydetmek. Ancak amacım, ssh tüneli üzerinden bu bağlantı noktasını açtıktan sonra komut satırı üzerinden yeni bir IP: Bağlantı Noktası bağlantısı başlatmaktır. Şu anda "Şimdi kaydedilen bağlantının ana bilgisayarını
10.10.1.23:5589 olarak

1
Bir yol bulursanız lütfen bana bildirin :)

1

Microsoft TAM'ımla görüştükten sonra, Microsoft istemcisine komut satırı üzerinden bir ana bilgisayar adı iletmenin bir yolu olmadığını gördüm.

Öte yandan, CoRD aslında rdp: // linklerini işleyerek istediğimi yapabilir. CoRD'yi yükledikten sonra,

open rdp://servername

Terminal veya iTerm2 içinde, bu konak için bir oturum açılacak sunucuadı'nın kordon içinde.

Mac'te "Launchy" alternatifim olarak Alfred'i (http://www.alfredapp.com/) kullanıyorum ve kısa süredir Quicksilver kullanıcısı olduktan sonra keşfettim. Alfred için Powerpack'i satın aldım, bu da bir dizi uzantı kullanmanıza izin veriyor, bunlardan biri kabuk komut dosyalarını başlatma olanağı veriyor. Bu yüzden bir kabuk komut dosyası uzantısı oluşturdum, rdp anahtar sözcüğünü atadım, "gerekli parametreye" ayarladım ve komut dosyasını şu şekilde ayarladım:

open rdp://{query}

Bu, alfred'i çağırmamı ve uzak sunucuya bir Uzak Masaüstü Bağlantısı oturumu açmak için rdp {tab} sunucuadı {return} yazmamı sağlıyor.


0

Yukarıdaki komut dosyası en son "Microsoft Uzak Masaüstü" ile çalışmaz. Bir değişken ile uygulamaya başvurmak sorunlu oldu, bu yüzden yolu (orijinal örnekten farklı olan) kodladım. Ayrıca '--args' parametresini kaldırmam gerekiyordu ve çalışmaya başladı.

open -na /Applications/Microsoft\ Remote\ Desktop.app/Contents/MacOS/Microsoft\ Remote\ Desktop ${rdpTempRDP}

0

Bu, çoğunlukla diğer cevapları temizlemek ve komut dosyası kesmek için kaçınmaktır:

(TL; DR: daha önce doğru olmayabilir, ancak Microsoft'un RDP'si artık .rdp dosyalarını otomatik olarak işliyor open)

Zaten RDP GUI'de depolanmış çok sayıda profilim var. (BTW, plist, ~/Library/Containers/com.microsoft.rdc.mac/Data/Library/Preferences/com.microsoft.rdc.mac.plisther zamanki gibi plutil -convert xml1 xyz.listinsan görüntüleme için)

(Daha fazla referans: https://macmule.com/2013/10/22/how-to-create-a-microsoft-remote-desktop-8-connection/ )

Komut verilebilir yapmak için:

  1. GUI'de profili seçin
  2. Dosya -> Dışa Aktar .rdpdosyayı yaratır ve parola bilgisinin eksik olduğunu belirtir
  3. (Parametrelerin manuel rdp: // sözdizimine nasıl karşılık geldiğini görmek için .rdp dosyasını inceleyin)
  4. Komut satırından sadece opendosya adı.rdp

-1

Bağlanmak istediğiniz her sunucu için bir şablonun yanı sıra bu "ömür boyu bir kez" bağlantıları için boş bir sunucu alanı ile bir şablon yapmak kadar kolay olacağını düşünüyorum. Sadece bir klasörde pop ve sipariş doğru almak için onları adlandırın veya numaralandırın. Klasörü dock'a sürükleyin ve rdp şablonlarının hızlı bir listesini almak için tıklayabileceğim bir nokta var, daha sonra bağlanmak için tek tıklayabilirim. Veya Command + Space tuşlarına basıp dosyanın adını yazabilir ve çalıştırmak için enter tuşuna basabilirim. VEYA TÜR TİP TİP TİP TİPİ ve her türlü yönetim uygulaması yükleyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.