My Teammate Jeremy Foster recently shared some azure goodness that he added into his PowerShell Profile. Then today, I ran across Brian Farnhill’s “Opening RDP session to an Azure VM with PowerShell” blog post and was inspired to add a simple function to my own PowerShell profile to simplify making RDP connections with my Azure VMs.
From a PowerShell command prompt, I opened my profile in notepad (or the text editor of your choice)
notepad $profile
Then, to the bottom of my profile I added the following function
function rdpvm ($ServiceName,$Name) { $vm = (Get-AzureVM -ServiceName $ServiceName -Name $Name) if($vm -and $vm.InstanceStatus -eq 'ReadyRole') { $rdp = (Get-AzureEndpoint -VM $vm | where { $_.LocalPort -eq 3389}) $fqdn = (New-Object System.URI $vm.DNSName).Authority $port = $rdp.Port Write-Host "Opening Remote Desktop Session with $($fqdn):$($port)..." Start-Process "mstsc" -ArgumentList "/V:$($fqdn):$($port)" } else { Write-Warning "The VM $($vm.Name) is not running ($($vm.InstanceStatus)). You should start it first" } }
Now, in the future, when I am working with Azure in PowerShell I can simply run the following to open an RDP session with a VM. Of course, this assumes I’ve already used “Add-AzureAccount” to sign into my azure subscriptions.
rdpvm -ServiceName <MyCloudServiceName> -Name <MyVMName>