明白,你想在 Windows 系统中严格限制用户执行命令行、PowerShell、批处理脚本、注册表操作,以及修改网络配置。下面我给你一个系统化的方案,包含 组策略、文件权限、软件限制策略,可以在企业或本地环境中实施。
1️⃣ 禁止 CMD 和 PowerShell
方法 1:通过组策略
- 打开组策略编辑器
gpedit.msc
- 禁止 CMD
用户配置 -> 管理模板 -> 系统 -> 阻止访问命令提示符
- 设置为 已启用
- 可选:阻止批处理文件运行(Yes/No)
- 禁止 PowerShell
用户配置 -> 管理模板 -> 系统 -> Windows PowerShell -> 阻止访问 Windows PowerShell
- 设置为 已启用
- 可以设置 “执行策略”为 Restricted
⚠️ 注意:管理员账户可能仍然能绕过,需要限制普通用户。
方法 2:软件限制策略 / 应用程序控制
- 软件限制策略
gpedit.msc -> 用户配置 -> Windows 设置 -> 安全设置 -> 软件限制策略
- 新建策略,禁止执行:
%SystemRoot%\System32\cmd.exe %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
- 新建策略,禁止执行:
- AppLocker(Windows 10/11 企业版)
- 位置:
计算机配置 -> Windows 设置 -> 安全设置 -> 应用程序控制策略 -> AppLocker
- 创建 执行规则,禁止 cmd、powershell、*.bat 文件运行
- 位置:
2️⃣ 禁止 .bat、.cmd 脚本运行
- 方法 1:软件限制策略
- 设置 路径规则:
*.bat *.cmd
- 将用户权限设置为 不允许执行
- 设置 路径规则:
- 方法 2:AppLocker
- 创建 文件类型规则,阻止普通用户执行批处理文件
- 支持白名单(仅允许特定程序运行)
3️⃣ 禁止修改注册表
方法 1:限制注册表编辑器
- 打开组策略
用户配置 -> 管理模板 -> 系统 -> 阻止访问注册表编辑工具
- 设置为 已启用
- 可选:阻止从命令行 reg.exe 访问
方法 2:限制权限
- 针对 HKEY_LOCAL_MACHINE/HKEY_CURRENT_USER,通过注册表权限,禁止普通用户写入关键键值
- 方法:
regedit -> 右键键 -> 权限 -> 移除“Users”的写权限
4️⃣ 禁止修改网卡 IP
方法 1:通过组策略限制网络设置
用户配置 -> 管理模板 -> 网络 -> 网络连接 -> 禁止访问 LAN 连接属性
- 适用于阻止用户手动修改 IP、DNS 等
方法 2:限制普通用户权限
- 确保普通用户不是 本地管理员
- 普通用户无法通过:
ncpa.cpl
修改网络配置netsh
修改 IP- PowerShell 修改 IP(结合上面禁止 PowerShell)
5️⃣ 综合方案(企业/安全环境推荐)
操作 | 方法 | 注意事项 |
---|---|---|
CMD | 禁止访问命令提示符 + AppLocker | 普通用户有效 |
PowerShell | 限制访问 + 执行策略 Restricted + AppLocker | 高级用户可能绕过 |
批处理文件 | AppLocker/软件限制策略 | 白名单控制更安全 |
注册表 | 阻止注册表编辑器 + 修改权限 | 避免管理员权限被滥用 |
修改 IP | 禁止访问网络连接属性 + 普通用户非管理员 | 避免 netsh / PowerShell 绕过 |
💡 额外建议:
- 使用 标准用户账户,不要给普通用户管理员权限。
- AppLocker/软件限制策略比单纯组策略更可靠。
- 对关键系统操作,可结合 第三方终端安全软件 做二次防护。
发表回复