You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过PowerShell配置拒绝Windows RDP登录权限?

当然可行!用PowerShell完全能配置RDP登录拒绝权限

不用依赖gpedit.msc,你可以通过PowerShell直接修改对应注册表项,或者结合secedit命令来实现这个需求,下面是两种实操方法:

方法1:直接修改注册表(最快捷)

本地组策略里的「拒绝通过远程桌面服务登录」权限,对应的是注册表HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PrivilegeRights路径下的SeDenyRemoteInteractiveLogonRight键值,我们可以用PowerShell直接编辑它:

步骤:

  1. 获取当前已被拒绝的用户/组
    先看看现在有哪些主体被拒绝了RDP登录:

    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PrivilegeRights" -Name SeDenyRemoteInteractiveLogonRight
    
  2. 添加新的拒绝对象
    比如要拒绝本地用户User1和域用户CORP\JohnDoe,可以用这段脚本(自动去重,避免重复添加):

    # 获取当前拒绝列表
    $currentDenied = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PrivilegeRights" -Name SeDenyRemoteInteractiveLogonRight).SeDenyRemoteInteractiveLogonRight
    # 新增要拒绝的用户/组
    $newDenied = $currentDenied + "User1", "CORP\JohnDoe" | Select-Object -Unique
    # 写入注册表
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PrivilegeRights" -Name SeDenyRemoteInteractiveLogonRight -Value $newDenied
    
  3. 清空拒绝列表(恢复默认)
    如果想取消所有拒绝限制,执行:

    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PrivilegeRights" -Name SeDenyRemoteInteractiveLogonRight -Value @()
    

方法2:使用secedit命令(贴近组策略逻辑)

secedit是Windows自带的安全配置工具,我们可以用PowerShell配合它导出、修改、导入安全策略:

步骤:

  1. 导出当前安全配置到临时文件

    # 先创建临时目录(如果不存在)
    if (-not (Test-Path "C:\temp")) { New-Item -Path "C:\temp" -ItemType Directory | Out-Null }
    # 导出安全设置
    secedit /export /cfg C:\temp\rdp_sec.cfg
    
  2. 修改配置文件中的拒绝权限条目

    $configFile = "C:\temp\rdp_sec.cfg"
    # 读取配置内容并替换目标条目
    $configContent = Get-Content $configFile
    $updatedContent = $configContent -replace 'SeDenyRemoteInteractiveLogonRight = .*', 'SeDenyRemoteInteractiveLogonRight = User1,CORP\JohnDoe'
    # 保存修改后的配置
    $updatedContent | Set-Content $configFile
    
  3. 导入修改后的配置

    secedit /configure /db C:\Windows\security\local.sdb /cfg C:\temp\rdp_sec.cfg /areas USER_RIGHTS
    

注意事项

  • 所有操作都需要以管理员身份运行PowerShell,否则会有权限错误。
  • 修改完成后,建议重启远程桌面服务让设置立即生效:
    Restart-Service -Name TermService -Force
    

内容的提问来源于stack exchange,提问作者arhu

火山引擎 最新活动