Install the Remote Desktop client for Windows on a per-user basis with Configuration Manager
You can install the Remote Desktop client for Windows on either a per-system or per-user basis. Installing it on a per-system basis installs the client on the machines for all users by default, and administrators control updates. Per-user installation installs the application to a subfolder within the local AppData folder of each user's profile, enabling users to install updates without needing administrative rights.
When you install the client using msiexec.exe
, per-system is the default method of client installation. You can use the parameters ALLUSERS=2 MSIINSTALLPERUSER=1
with msiexec to install the client per-user, however if you're deploying the client with Configuration Manager, using msiexec directly to install the client causes it to be installed per-system, regardless of the parameters used. Wrapping the msiexec command in a PowerShell script enables the client to be successfully installed per-user.
Prerequisites
In order to install the Remote Desktop client for Windows on a per-user basis with Configuration Manager, you need the following things:
Download the latest version of the Remote Desktop client for Windows.
Supported Windows devices managed by Configuration Manager with permission to add applications.
Install the Remote Desktop client per-user using a PowerShell script
To install the client on a per-user basis using a PowerShell script, select the relevant tab for your scenario and follow the steps.
Here's how to install the client on a per-user basis using a PowerShell script with Configuration Manager as a Script Installer.
Create a new folder in your content location share for Configuration Manager and add the Remote Desktop client
.msi
file you downloaded.Within that folder, create a PowerShell script file called
Install.ps1
and add the following content, replacing<RemoteDesktop>
with the filename of the.msi
file you downloaded:msiexec /i <RemoteDesktop>.msi /qn ALLUSERS=2 MSIINSTALLPERUSER=1
In the same folder, create a PowerShell script file called
Uninstall.ps1
and add the following content:$productCode = (Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -eq 'Remote Desktop' -and $_.Vendor -eq 'Microsoft Corporation'}).IdentifyingNumber msiexec /x $productCode /qn
In the same folder, create a PowerShell script file called
Detection.ps1
and add the following content:If (([string](Get-ChildItem Registry::HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | Where-Object {$_.GetValue('DisplayName') -eq 'Remote Desktop'})) -and (Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -eq 'Remote Desktop' -and $_.Vendor -eq 'Microsoft Corporation'})) { Write-Host "Microsoft Remote Desktop client is installed" exit 0 } else { Write-Host "Microsoft Remote Desktop client isn't installed" exit 1 }
Follow the steps in Create applications in Configuration Manager, selecting to manually specify application information to add the Remote Desktop client. Here's some of the information you need to specify during the process. You can leave the rest of the settings as default or update them as needed.
Parameter Value/Description Deployment type Select Script Installer. Content location Enter the UNC path to the new folder you created. Installation program powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File .\Install.ps1
Uninstall program powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File .\Uninstall.ps1
Detection method Select Use a custom script to detect the presence of this deployment type. Detection script editor Select PowerShell. Detection script file Select the file Detection.ps1
you created earlier.Installation behavior Select Install for user. Follow the steps in Deploy applications with Configuration Manager to deploy the Remote Desktop client to your users.
Next steps
Learn more about the Remote Desktop client at Use features of the Remote Desktop client for Windows.