PowerShell

Enable Remote Desktop remotely with PowerShell (Enable-RemoteDesktop)

Forgot to enable remote desktop? This is bad. The only solution is to go back to the remote computer and then enable RD. Not really. In this blog post I will show you how you can enable RD with PowerShell. Let’s jump in.

The Objective

We want to allow Remote-Desktop connections.

My function has been uploaded to the PowerShell Gallery in order to simply install with the command below.

Install-Module Enable-RemoteDesktop

The Code

Here is the code.

function Enable-RemoteDesktop {

<# 

.SYNOPSIS
Enable-RemoteDesktop enables Remote Desktop on remote computers.

.DESCRIPTION
Enable-RemoteDesktop edits the registry and enables all required firwall rules for RDP.

.PARAMETER Target
Provide the target computer name.
 
.EXAMPLE
Enable-RemoteDesktop -Target server01,server02,server03
Enable-RemoteDesktop -Target client01
 
.NOTES
Author: Patrick Gruenauer
Web: https://sid-500.com

#>

param
 
(
[Parameter ()]
$Target
)
''
Write-Warning "This command works only on English and German OS.`nMake sure WinRM is enabled on target computers. (default: Windows Server OS)"


foreach ($t in $Target) {
    

Invoke-Command -ComputerName $t -ScriptBlock {

# Enable RDP on english OS

If ((Get-WinSystemLocale).Name -like "*en-*") {

Set-ItemProperty `
-Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'`
-Name "fDenyTSConnections" -Value 0; `
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

Write-Output "$t : Operation completed successfully."

}

If ((Get-WinSystemLocale).Name -like "*de-*") {

Set-ItemProperty `
-Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'`
-Name "fDenyTSConnections" -Value 0; `
Enable-NetFirewallRule -DisplayGroup "RemoteDesktop"

}
}
Write-Output "$t : Operation completed successfully."
}
}

Thank you for reading this article.

2 replies »

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.