限制Windows Server 2012 R2本地用户使用远程桌面连接
解决Windows Server 2012 R2中限制Users组使用mstsc.exe的问题
看起来你已经尝试了防火墙和AppLocker的方法但没生效,大概率是配置细节上出了问题,我来帮你一步步排查和解决:
首先排查AppLocker规则的常见问题
- 确认Application Identity服务是否运行:AppLocker完全依赖这个服务才能生效,你可以按Win+R输入
services.msc打开服务列表,找到“Application Identity”,确保它处于启动状态。如果没启动,右键设置为自动启动并启动它。也可以用命令行快速检查:sc query appidsvc,状态显示RUNNING才是正常的。 - 规则是否覆盖了所有mstsc路径:如果你的Server是64位系统,除了
C:\Windows\System32\mstsc.exe,还有32位版本的程序在C:\Windows\SysWOW64\mstsc.exe,很多人会漏掉后者。你需要给这两个路径都创建拒绝运行的规则,目标用户明确选择Users组。 - 检查规则的强制模式:打开本地组策略编辑器(Win+R输入
gpedit.msc),导航到计算机配置>Windows设置>安全设置>应用程序控制策略>AppLocker,右键AppLocker选择“属性”,查看“可执行规则”的强制模式——如果是“仅审核”,规则只会记录日志不会实际阻止,必须设置为“强制规则”才会生效。 - 排查规则优先级和排除项:检查规则列表里有没有针对Users组的允许规则,或者你的拒绝规则是否意外排除了某些用户。确保规则是针对所有Users组成员,没有额外的例外设置。
然后修正Windows防火墙的配置
- 规则是否正确绑定Users组:默认防火墙规则是针对程序或端口,但如果要限制特定用户,需要在出站规则的“高级”选项卡中,点击“用户”,添加Users组并设置为“拒绝”。很多人只设置了端口和方向,没指定用户,导致规则没有精准作用到目标群体。
- 调整规则执行优先级:防火墙规则是按顺序执行的,如果有允许所有出站连接的规则排在你的阻止规则前面,那么阻止规则会被忽略。打开Windows防火墙的出站规则列表,找到你创建的3389阻止规则,右键选择“上移”直到它排在最顶部。
- 检查是否使用了RD Gateway:如果用户是通过远程桌面网关(RD Gateway)连接的,那么使用的端口通常是443而非3389,这时候你需要额外添加阻止443端口出站的规则,同样针对Users组。
更直接的替代方案
如果上面的方法还是不行,可以试试这两个更简单直接的方案:
- 组策略直接禁用远程桌面连接:打开本地组策略编辑器,导航到
用户配置>管理模板>Windows组件>远程桌面服务>远程桌面连接客户端,找到“禁止远程桌面连接”策略,设置为“已启用”。这个策略会直接禁用Users组的远程桌面连接功能,不需要考虑端口或程序路径。 - 修改mstsc.exe的文件权限:找到
C:\Windows\System32\mstsc.exe和C:\Windows\SysWOW64\mstsc.exe,右键选择“属性>安全>编辑”,找到Users组,移除“读取和执行”权限后点击确定。这样Users组的用户就无法运行这个程序了,注意不要移除管理员组的权限,确保管理员还能正常使用。
按照这些步骤检查和调整,应该就能成功限制Users组使用mstsc连接其他设备了。
内容的提问来源于stack exchange,提问作者jaykio77




