MS Remote Desktop Connection through Self Service

taylorducharme
New Contributor III

Hey All, trying to see if its possible to be able to put an RDP link in self service for users to get instead of manually adding it to each computer.

4 REPLIES 4

talkingmoose
Moderator
Moderator

This appears to be possible according to Microsoft's documentation:

https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-deskto...

Using the sample command from that page, you could add the following one-line command to a Policy under Files and Processes > Execute Command and then enable the policy for Self Service.

/usr/bin/open rdp://full%20address=s:mypc:3389&audiomode=i:2&disable%20themes=i:1

mm2270
Legendary Contributor III

Interestingly, those URIs work as regular Self Service bookmarks. I just added something like the above to my Self Service bookmarks list, with it set to open in a browser, not in Self Service, and when it's clicked, it auto opens Microsoft Remote Desktop 8 or 10, whichever is installed.

OTOH, you could do the Execute Command > open in a policy, or you could even export the links out from RDP into .rdp files that you can package up and push out to devices into a specific folder on them. The last one might be useful if you have a large amount of rdp links you need users to have.
So, multiple ways to address this.

hpavlic_
New Contributor III

Just make sure if you will be using Execute Command via policy to put backslash() before ampersand(&), like this:

/usr/bin/open rdp://full%20address=s:mypc:3389&audiomode=i:2&disable%20themes=i:1

HNTIT
Contributor II

I do use a script to push an RDWEB feed, but it's still a tad flaky.

Here is what i Have

Parameter 4 = Feed URL ( eg https://dnsnameofserver/RDWeb/Feed/webfeed.aspx )
Parameter 5 = Authentication ? NONE / USER / SPECIFIC
Parameter 6 = Specific Username
Parameter 7 = Specific Password

Script is

#!/bin/sh
#
###############################################################################################################################################
#
# DEFINE VARIABLES & READ IN PARAMETERS
#
###############################################################################################################################################
#
LoggedInUser=$3
URL=$4
Authentication=$5
Username=$6
Password=$7
#
ScriptName="ZZ 21 - Management - RD WEB"
#
###############################################################################################################################################
#
# SCRIPT CONTENTS - DO NOT MODIFY BELOW THIS LINE
#
###############################################################################################################################################
#
# Defining Functions
#
###############################################################################################################################################
#
# Script End Function
#
ScriptEnd(){
#
# Outputting a Blank Line for Reporting Purposes
echo
#
Echo Ending Script '"'$ScriptName'"'
#
# Outputting a Blank Line for Reporting Purposes
echo
#
# Outputting a Dotted Line for Reporting Purposes
echo  -----------------------------------------------
#
# Outputting a Blank Line for Reporting Purposes
echo
#
}
#
###############################################################################################################################################
#
# End Of Function Definition
#
###############################################################################################################################################
#
# Beginning Processing
#
###############################################################################################################################################
#
# Outputs 2 blank lines for reporting purposes
echo
echo
#
# Outputting a Dotted Line for Reporting Purposes
echo  -----------------------------------------------
#
# Outputting a Blank Line for Reporting Purposes
echo
#
if [ -n "${Authentication}" ]
    then
        #
        if [ ${Authentication} == "SPECIFIC" ]
            then
                echo Setting up Feed as Specific User
                # Outputting a Blank Line for Reporting Purposes
                echo
                #
                if [ -n "${Username}" ]
                    then
                        echo Username set to $Username
                        # Outputting a Blank Line for Reporting Purposes
                        echo
                    else
                        # Outputting a Blank Line for Reporting Purposes
                        echo
                        echo Username is blank but required for this action. Cannot continue
                        ScriptEnd
                        exit 1
                fi
                #
                if [ -n "${Password}" ]
                    then
                        echo Password set to $Password
                        # Outputting a Blank Line for Reporting Purposes
                        echo
                    else
                        # Outputting a Blank Line for Reporting Purposes
                        echo
                        echo Password is blank but required for this action. Cannot continue
                        ScriptEnd
                        exit 1
                fi
                #
                Options=(--username '"'$Username'"' --password '"'$Password'"')
                #
        fi
        #
        if [ ${Authentication} == "USER" ]
            then
                echo Setting up Feed as Logged in User
                # Outputting a Blank Line for Reporting Purposes
                echo
                #
                Username=$3
                #
                echo Username set to $Username
                # Outputting a Blank Line for Reporting Purposes
                echo
                #
                Options=(--username '"'$Username'"')
                #
        fi
        #
        if [ ${Authentication} == "NONE" ]
            then
                echo Setting up Feed with No Credentials
                # Outputting a Blank Line for Reporting Purposes
                echo
                #
                Options=""
                #
        fi
        #
    else
        #
        echo Authentication variable either not set, or set incorrectly.
        echo Setting up Feed with No Credentials 
        # Outputting a Blank Line for Reporting Purposes
        echo
        #
        Options=""
        #
fi
#
echo Running Command
echo sudo -u $LoggedInUser "/Applications/Microsoft Remote Desktop.app/Contents/MacOS/Microsoft Remote Desktop" --script feed write "${URL[@]}" "${Options[@]}"
# Outputting a Blank Line for Reporting Purposes
echo
#
sudo -u $LoggedInUser "/Applications/Microsoft Remote Desktop.app/Contents/MacOS/Microsoft Remote Desktop" --script feed write "${URL[@]}" "${Options[@]}"
#
ScriptEnd