怎么设置通过ip远程连接电脑,怎么设置远程自动连接

首页 > 实用技巧 > 作者:YD1662023-11-05 21:18:44

如果该服务被禁用或访问被 Windows Defender 防火墙阻止,则会出现错误:

Test-WsMan WSManFault:WinRM 无法完成操作。验证指定的计算机名称是否有效、该计算机是否可通过网络访问、WinRM 服务的防火墙例外是否已启用并允许从此计算机进行访问。默认情况下,公共配置文件的 WinRM 防火墙例外限制对同一本地子网内的远程计算机的访问。

因此,要通过 PowerShell 远程启用远程桌面,远程计算机必须满足以下要求:

  1. WinRM 服务应该启动;
  2. 您必须拥有远程设备的管理员权限;
  3. 具有高级安全规则的 Windows Defender 防火墙必须接受 WinRM 端口 Tcp 5985 和 5986 上的 PowerShell 远程处理。您可以使用以下命令启用 WinRM 防火墙规则:netsh advfirewall 防火墙设置规则组=“Windows 远程管理”新启用=yes)

假设您要在 Windows Server 2022/2019/2016/2012R2 上远程启用 RDP。打开计算机上的PowerShell控制台并运行以下命令远程连接到服务器:

Enter-PSSession -ComputerName server.domain.local -Credential domainadministrator

提示:Enter-PSSession 和 Invoke-Command cmdlet 允许您通过 WinRM 在远程计算机上运行 PowerShell 脚本。

现在,您已经与计算机建立了远程会话,现在可以对其运行 PowerShell 命令。要启用远程桌面,只需将注册表参数fDenyTSConnections从1更改为0即可。运行命令:

Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal Server'-name "fDenyTSConnections" -Value 0

怎么设置通过ip远程连接电脑,怎么设置远程自动连接(5)

当以这种方式(与 GUI 方法相反)启用 RDP 时,您需要手动启用远程桌面的 Windows 防火墙规则。运行命令:

Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

如果由于某种原因缺少此 RDP 防火墙规则,您可以使用 netsh 手动创建它:

netsh advfirewall firewall add rule name="allow RemoteDesktop" dir=in Protocol=TCP localport=3389 action=allow

或使用 Powershell:

New-NetFirewallRule -DisplayName 'Allow RemoteDesktop' -Profile @('Domain', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('3389')

如果要限制允许连接到远程桌面的主机或子网,可以创建自定义规则,允许 Windows 防火墙仅接受来自特定 IP 地址、子网或 IP 范围的传入 RDP 连接。在这种情况下,您需要使用以下命令而不是上一个命令:

New-NetFirewallRule -DisplayName “Restrict_RDP_access" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 192.168.1.0/24,192.168.2.100 -Action Allow

如果需要启用安全 RDP 身份验证(NLA – 网络级身份验证),请运行以下命令:

Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' -name "UserAuthentication" -Value 1

现在您可以从您的计算机检查远程主机上 TCP 端口 3389 的可用性。运行命令:

Test-NetConnection 192.168.1.11 -CommonTCPPort rdp

应该有这样的结果:

ComputerName : 192.168.1.11 RemoteAddress : 192.168.1.11 RemotePort : 3389 InterfaceAlias : Ethernet0 SourceAddress : 192.168.1.90 TcpTestSucceeded : True

怎么设置通过ip远程连接电脑,怎么设置远程自动连接(6)

这意味着远程主机上的 RDP 已启用,您可以使用 mstsc.exe、RDCMan 或任何替代 RDP 客户端建立远程桌面连接。

暗示。如果需要同时在多台远程计算机上启用 RDP,可以使用以下 PowerShell 脚本:

$comps = “Server1”, “Server2”, “Server3”, “Server4” Invoke-Command –Computername $comps –ScriptBlock {Set-ItemProperty -Path "HKLM:SystemCurrentControlSetControlTerminal Server" -Name "fDenyTSConnections" –Value 0} Invoke-Command –Computername $comps –ScriptBlock {Enable-NetFirewallRule -DisplayGroup "Remote Desktop"}

默认情况下,只有本地管理员组的成员才能通过 RDP 进行远程连接。要允许非管理员用户进行 RDP 连接,只需将域用户添加到远程桌面组即可。

您可以使用本地用户和组 MMC 管理单元 (LUSRMGR.MSC) 将所需用户添加到本地远程桌面用户。

怎么设置通过ip远程连接电脑,怎么设置远程自动连接(7)

或者,您可以使用 Enter-PSSession 远程更改 RD 用户组成员身份。使用以下命令将域用户ASmith添加到本地组中:

net localgroup "remote desktop users" /add "contosoasmith”

或者,您可以使用另一个 PS Remoting 命令 Invoke-Command,而不是 Enter-PSSession cmdlet:

Invoke-Command -Scriptblock {net localgroup "remote desktop users" /add "contosoasmith”} -Computer Server1.contoso.com如何使用PowerShell检查远程计算机上是否启用了远程桌面?

考虑一个 PowerShell 脚本,它允许您远程获取网络中多台计算机上的 RDP 状态。设置一个变量,其中包含要检查远程桌面是否已启用的远程计算机列表:

$comps=’wks101’,’wks102’,’wks112’, ‘wks223’

您还可以检查 Active Directory 域中的所有计算机上是否启用了 RDP。要获取 AD 中活动计算机的列表,您可以使用 PowerShell Active Directory 模块中的 Get-ADComputer cmdlet:

$comps = (Get-ADComputer -Filter 'operatingsystem -like "*Windows 10*" -and enabled -eq "true"').Name

现在您需要获取列表中远程计算机上的 fDenyTSConnections 注册表参数的状态。

$Report = @() $comps ='localhost','localhost' foreach ($comp in $comps) { $RDPRegistry = Invoke-Command $comp -ScriptBlock { (Get-ItemProperty 'HKLM:SYSTEMCurrentControlSetControlTerminal Server').fDenyTSConnections } -ErrorAction SilentlyContinue $RDPState = switch ($RDPRegistry) { '0' {"Enabled"} '1' {"Disabled"} Default {"n/a"} } $objReport = [PSCustomObject]@{ ComputerName = $comp RDPState = $RDPState } $Report = $objReport } $Report

因此,您将获得一份很酷的报告,显示网络上的哪些计算机启用了远程桌面。

怎么设置通过ip远程连接电脑,怎么设置远程自动连接(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.