{"id":811720,"date":"2026-05-25T07:16:31","date_gmt":"2026-05-25T07:16:31","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=811720"},"modified":"2026-05-25T07:16:31","modified_gmt":"2026-05-25T07:16:31","slug":"ativar-ou-desativar-o-rdp-usando-o-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/pt-br\/script-hub\/ativar-ou-desativar-o-rdp-usando-o-powershell\/","title":{"rendered":"Ativar ou desativar o protocolo de \u00e1rea de trabalho remota (RDP) em esta\u00e7\u00f5es de trabalho usando o PowerShell"},"content":{"rendered":"<h2>Principais conclus\u00f5es<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">O RDP \u00e9 uma ferramenta essencial para os profissionais de TI, permitindo o acesso remoto a computadores.<\/li>\n<li>O script do PowerShell fornecido oferece um m\u00e9todo simplificado para ativar ou desativar o RDP nas <a href=\"https:\/\/www.ninjaone.com\/blog\/what-is-a-workstation\/\">esta\u00e7\u00f5es de trabalho<\/a>.<\/li>\n<li>S\u00e3o executadas duas a\u00e7\u00f5es principais: modificar as configura\u00e7\u00f5es do registro e ajustar as regras <a href=\"https:\/\/www.ninjaone.com\/pt-br\/blog\/o-que-e-um-firewall\/\">do firewall<\/a>.<\/li>\n<li>O script requer privil\u00e9gios de administrador e verifica se a m\u00e1quina \u00e9 uma esta\u00e7\u00e3o de trabalho.<\/li>\n<li>Embora o RDP ofere\u00e7a conveni\u00eancia, ele pode apresentar riscos de seguran\u00e7a se for mal configurado.<\/li>\n<li>O monitoramento e o uso de m\u00e9todos de autentica\u00e7\u00e3o fortes s\u00e3o recomendados para o uso seguro do RDP.<\/li>\n<li>Plataformas como o NinjaOne complementam o script, oferecendo uma solu\u00e7\u00e3o abrangente de gerenciamento de TI.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.ninjaone.com\/pt-br\/blog\/what-is-remote-desktop-protocol-rdp\/\">O Remote Desktop Protocol (RDP)<\/a> \u00e9 uma ferramenta essencial no arsenal dos profissionais de TI, permitindo que os usu\u00e1rios se conectem remotamente a outro computador por meio de uma conex\u00e3o de rede. No entanto, como qualquer ferramenta poderosa, o RDP requer um gerenciamento prudente, especialmente \u00e0 medida que aumentam as preocupa\u00e7\u00f5es com a seguran\u00e7a. Este blog se aprofunda em um script do PowerShell criado para <strong>gerenciar e definir<\/strong> as configura\u00e7\u00f5es da <strong>\u00c1rea de Trabalho Remota (RDP)<\/strong> nas esta\u00e7\u00f5es de trabalho.<\/p>\n<h2>Hist\u00f3rico<\/h2>\n<p>O PowerShell se tornou rapidamente uma ferramenta fundamental para os administradores de TI devido \u00e0 sua flexibilidade e profundidade. O script fornecido explora esse potencial, oferecendo um m\u00e9todo conciso para ativar ou desativar o RDP para esta\u00e7\u00f5es de trabalho. \u00c0 medida que os ambientes de TI se tornam mais complexos, solu\u00e7\u00f5es simplificadas como esse script s\u00e3o indispens\u00e1veis para os <a href=\"https:\/\/www.ninjaone.com\/what-is-an-msp\/\">provedores de servi\u00e7os gerenciados (MSPs)<\/a> e profissionais de TI. \u00c9 fundamental garantir que o RDP esteja configurado corretamente, pois qualquer configura\u00e7\u00e3o incorreta pode expor vulnerabilidades.<\/p>\n<h2>O roteiro<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">&lt;#\r\n.SYNOPSIS\r\n    Enables or Disables RDP for workstations only.\r\n.DESCRIPTION\r\n    Enables or Disables RDP for workstations only.\r\n.EXAMPLE\r\n    -Disable\r\n    Disables RDP for a workstation.\r\n.EXAMPLE\r\n    -Enable\r\n    Enables RDP for a workstation.\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes:\r\n    Initial Release\r\nBy using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n    Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#&gt;\r\n[CmdletBinding(DefaultParameterSetName = \"Disable\")]\r\nparam (\r\n    [Parameter(Mandatory = $true, ParameterSetName = \"Enable\")]\r\n    [switch]\r\n    $Enable,\r\n    [Parameter(Mandatory = $true, ParameterSetName = \"Disable\")]\r\n    [switch]\r\n    $Disable\r\n)\r\n\r\nbegin {\r\n    function Set-ItemProp {\r\n        param (\r\n            $Path,\r\n            $Name,\r\n            $Value,\r\n            [ValidateSet(\"DWord\", \"QWord\", \"String\", \"ExpandedString\", \"Binary\", \"MultiString\", \"Unknown\")]\r\n            $PropertyType = \"DWord\"\r\n        )\r\n        # Do not output errors and continue\r\n        $ErrorActionPreference = [System.Management.Automation.ActionPreference]::SilentlyContinue\r\n        if (-not $(Test-Path -Path $Path)) {\r\n            # Check if path does not exist and create the path\r\n            New-Item -Path $Path -Force | Out-Null\r\n        }\r\n        if ((Get-ItemProperty -Path $Path -Name $Name)) {\r\n            # Update property and print out what it was changed from and changed to\r\n            $CurrentValue = Get-ItemProperty -Path $Path -Name $Name\r\n            try {\r\n                Set-ItemProperty -Path $Path -Name $Name -Value $Value -Force -Confirm:$false -ErrorAction Stop | Out-Null\r\n            }\r\n            catch {\r\n                Write-Error $_\r\n            }\r\n            Write-Host \"$Path$Name changed from $CurrentValue to $Value\"\r\n        }\r\n        else {\r\n            # Create property with value\r\n            try {\r\n                New-ItemProperty -Path $Path -Name $Name -Value $Value -PropertyType $PropertyType -Force -Confirm:$false -ErrorAction Stop | Out-Null\r\n            }\r\n            catch {\r\n                Write-Error $_\r\n            }\r\n            Write-Host \"Set $Path$Name to $Value\"\r\n        }\r\n        $ErrorActionPreference = [System.Management.Automation.ActionPreference]::Continue\r\n    }\r\n    function Test-IsElevated {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)\r\n    }\r\n\r\n    # Registry settings\r\n    $Path = 'HKLM:\\System\\CurrentControlSet\\Control\\Terminal Server'\r\n    $Name = \"fDenyTSConnections\"\r\n    $RegEnable = 0\r\n    $RegDisable = 1\r\n\r\n    $osInfo = Get-CimInstance -ClassName Win32_OperatingSystem\r\n    $IsWorkstation = if ($osInfo.ProductType -eq 1) {\r\n        $true\r\n    }\r\n    else {\r\n        $false\r\n    }\r\n}\r\nprocess {\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n    if (-not $IsWorkstation) {\r\n        # System is a Domain Controller or Server\r\n        Write-Error \"System is a Domain Controller or Server. Skipping.\"\r\n        exit 1\r\n    }\r\n\r\n    # Registry\r\n    if ($Disable) {\r\n        $RegCheck = $null\r\n        $RegCheck = $(Get-ItemPropertyValue -Path $Path -Name $Name -ErrorAction SilentlyContinue)\r\n        if ($null -eq $RegCheck) {\r\n            $RegCheck = 0\r\n        }\r\n        if ($RegDisable -ne $RegCheck) {\r\n            Set-ItemProp -Path $Path -Name $Name -Value $RegDisable\r\n            Write-Host \"Disabled $Path$Name\"\r\n        }\r\n        else {\r\n            Write-Host \"$Path$Name already Disabled.\"\r\n        }\r\n    }\r\n    elseif ($Enable) {\r\n        $RegCheck = $null\r\n        $RegCheck = $(Get-ItemPropertyValue -Path $Path -Name $Name -ErrorAction SilentlyContinue)\r\n        if ($null -eq $RegCheck) {\r\n            $RegCheck = 0\r\n        }\r\n        if ($RegEnable -ne $RegCheck) {\r\n            Set-ItemProp -Path $Path -Name $Name -Value $RegEnable\r\n            Write-Host \"Enabled $Path$Name\"\r\n        }\r\n        else {\r\n            Write-Host \"$Path$Name already Enabled.\"\r\n        }\r\n    }\r\n    else {\r\n        Write-Error \"Enable or Disable was not specified.\"\r\n        exit 1\r\n    }\r\n\r\n    # Firewall\r\n    if ($Disable) {\r\n        # Disable if was enabled and Disable was used\r\n        try {\r\n            Disable-NetFirewallRule -DisplayGroup \"Remote Desktop\" -ErrorAction Stop\r\n        }\r\n        catch {\r\n            Write-Error $_\r\n            Write-Host \"Remote Desktop firewall group is missing?\"\r\n        }\r\n        Write-Host \"Disabled Remote Desktop firewall rule groups.\"\r\n    }\r\n    elseif ($Enable) {\r\n        # Enable if was disabled and Enable was used\r\n        try {\r\n            Enable-NetFirewallRule -DisplayGroup \"Remote Desktop\" -ErrorAction Stop\r\n        }\r\n        catch {\r\n            Write-Error $_\r\n            Write-Host \"Remote Desktop firewall group is missing?\"\r\n        }\r\n        Write-Host \"Enabled Remote Desktop firewall rule groups.\"\r\n    }\r\n    else {\r\n        Write-Error \"Enable or Disable was not specified.\"\r\n        exit 1\r\n    }\r\n}\r\nend {}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Acesse mais de 300 scripts no NinjaOne Dojo<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/freetrialform\/\">Obter acesso<\/a><\/p>\n<\/div>\n<h2>Detalhamento<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Par\u00e2metros<\/strong>: O script usa dois par\u00e2metros, Enable (Ativar) e Disable (Desativar), que determinam se o RDP deve ser ativado ou desativado. Eles s\u00e3o mutuamente exclusivos; apenas um pode ser usado por vez.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><strong>Fun\u00e7\u00f5es auxiliares<\/strong>: Duas fun\u00e7\u00f5es auxiliam na tarefa principal:<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><strong>Set-ItemProp<\/strong>: Atualiza ou cria propriedades de registro, tratando poss\u00edveis erros e mantendo o usu\u00e1rio informado.<\/li>\n<li><strong>Test-IsElevated<\/strong>: Verifica se o script \u00e9 executado com privil\u00e9gios de administrador.<\/li>\n<li><strong>Processo<\/strong>: Esse \u00e9 o n\u00facleo do script. Ele come\u00e7a verificando se h\u00e1 direitos de administrador e se o computador \u00e9 uma esta\u00e7\u00e3o de trabalho. Em seguida, ele prossegue:<\/li>\n<li>Modifique as configura\u00e7\u00f5es do registro para ativar ou desativar o RDP.<\/li>\n<li>Ajuste as configura\u00e7\u00f5es do firewall para permitir ou bloquear o tr\u00e1fego RDP.<\/li>\n<\/ul>\n<h2>Casos de uso em potencial<\/h2>\n<p>Imagine uma empresa de m\u00e9dio porte com v\u00e1rias esta\u00e7\u00f5es de trabalho para seus funcion\u00e1rios. O departamento de TI, por motivos de seguran\u00e7a, desativou o RDP em todos os computadores. No entanto, um consultor externo precisa de acesso remoto a uma esta\u00e7\u00e3o de trabalho para fazer o diagn\u00f3stico. Usando esse script, o administrador de TI pode habilitar o RDP sem problemas nessa esta\u00e7\u00e3o de trabalho espec\u00edfica e desabilit\u00e1-lo quando a tarefa for conclu\u00edda.<\/p>\n<h2>Compara\u00e7\u00f5es<\/h2>\n<p>Embora existam ferramentas baseadas em GUI e outros m\u00e9todos para gerenciar o RDP, o script fornecido oferece as seguintes vantagens:<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Escalabilidade<\/strong>: Pode ser executado em v\u00e1rias esta\u00e7\u00f5es de trabalho por meio de um script ou agendador de tarefas.<\/li>\n<li><strong>Flexibilidade<\/strong>: Facilmente integrado a fluxos de trabalho de TI mais extensos.<\/li>\n<li><strong>Transpar\u00eancia<\/strong>: Por ser de c\u00f3digo aberto, a equipe de TI pode validar e ajustar o script para atender a necessidades espec\u00edficas.<\/li>\n<\/ul>\n<h2>Implica\u00e7\u00f5es<\/h2>\n<p>Embora a ativa\u00e7\u00e3o do RDP seja conveniente, um RDP exposto pode representar um risco significativo \u00e0 seguran\u00e7a. Os criminosos cibern\u00e9ticos geralmente exploram RDPs mal configurados. Portanto, \u00e9 imperativo equilibrar a conveni\u00eancia com a seguran\u00e7a.<\/p>\n<h2>Recomenda\u00e7\u00f5es<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">Sempre desative o RDP quando n\u00e3o estiver em uso.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Monitore os registros RDP em busca de atividades suspeitas.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\">Empregue m\u00e9todos de autentica\u00e7\u00e3o fortes quando o RDP estiver ativado.<\/li>\n<\/ul>\n<h2>Considera\u00e7\u00f5es finais<\/h2>\n<p>Ferramentas como o NinjaOne aprimoram as opera\u00e7\u00f5es de TI, oferecendo uma plataforma centralizada para <a href=\"https:\/\/www.ninjaone.com\/pt-br\/\">gerenciar e monitorar redes, dispositivos e muito mais.<\/a> Ao integrar solu\u00e7\u00f5es como o script do PowerShell discutido em estruturas de TI mais amplas, plataformas como o NinjaOne oferecem <a href=\"https:\/\/www.ninjaone.com\/pt-br\/eficiencia\/\">supervis\u00e3o e efici\u00eancia<\/a> inestim\u00e1veis <a href=\"https:\/\/www.ninjaone.com\/pt-br\/eficiencia\/\">.<\/a><\/p>\n<p>Ao compreender e implantar scripts do PowerShell como o descrito acima, os profissionais de TI podem aumentar sua efici\u00eancia e a seguran\u00e7a de seus ambientes de trabalho. A combina\u00e7\u00e3o disso com ferramentas poderosas como o NinjaOne torna o gerenciamento de TI ainda mais robusto.<\/p>\n","protected":false},"author":35,"featured_media":144965,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4212],"use_cases":[12456],"class_list":["post-811720","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/script_hub\/811720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/comments?post=811720"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/media\/144965"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/media?parent=811720"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/operating_system?post=811720"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/pt-br\/wp-json\/wp\/v2\/use_cases?post=811720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}