禁止系统自动创建 C$、D$ 等磁盘默认共享
在 Windows Server 2019 中,要禁止系统自动创建 C$、D$ 等磁盘默认共享,同时保留 IPC$(用于进程间通信和域认证)和 ADMIN$(用于远程管理),最标准且有效的方法是修改注册表。
Windows 原生机制将“磁盘默认共享”和“管理共享(ADMIN$/IPC$)”视为两类不同的自动共享。通过修改注册表中的 AutoShareServer 键值,可以仅禁用磁盘共享而不影响管理共享。
方法一:修改注册表(推荐,永久生效)
这是微软官方支持的方法,专门用于服务器版本。
-
打开注册表编辑器:
- 按
Win + R,输入regedit,回车。
- 按
-
定位到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters -
新建或修改 DWORD 值:
- 在右侧窗口查找名为
AutoShareServer的项。 - 如果存在:双击它,将数值数据改为
0。 - 如果不存在:右键点击空白处 -> 新建 -> DWORD (32-位) 值,命名为
AutoShareServer,然后双击将其数值数据设置为0。 - 注意:确保基数选择为“十六进制”或“十进制”均可,0 就是 0。
- 在右侧窗口查找名为
-
重启服务或服务器:
- 方式 A(重启服务器):最稳妥,重启后生效。
- 方式 B(重启 Server 服务):无需重启服务器,立即生效。
- 以管理员身份打开 PowerShell 或 CMD,运行:
Restart-Service LanmanServer -Force- 或者在“服务”管理器 (
services.msc) 中找到 Server 服务,右键选择“重新启动”。
-
验证结果:
- 打开 CMD,输入
net share。 - 你应该能看到
IPC$和ADMIN$依然存在,但C$、D$等磁盘共享已经消失。
- 打开 CMD,输入
方法二:使用 PowerShell 一键执行
如果你希望快速完成操作,可以直接以管理员身份运行以下 PowerShell 脚本:
# 设置注册表键值:禁用磁盘默认共享 (C$, D$ 等)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "AutoShareServer" -Value 0 -Type DWord
# 重启 Server 服务使配置立即生效
Restart-Service -Name "LanmanServer" -Force
# 验证共享列表
Write-Host "当前共享列表:" -ForegroundColor Green
net share
重要说明与注意事项
-
关于
ADMIN$和IPC$的保留:AutoShareServer = 0只会阻止系统自动挂载磁盘根目录(如 C$, D$)。ADMIN$(指向C:\Windows) 和IPC$是由LanmanServer服务的核心逻辑控制的,通常不受AutoShareServer影响,会默认保留,以确保域加入、组策略应用和远程管理工具(如 MMC、PsExec)正常工作。
-
如果是客户端系统(如 Win 10/11):
- 上述
AutoShareServer键值在 Windows 客户端版本(非 Server 版)中通常无效。客户端系统使用的是AutoShareWks键值。但你当前使用的是 Server 2019,所以必须使用AutoShareServer。
- 上述
-
临时手动删除(不推荐作为长期方案):
- 你可以运行
net share C$ /delete来手动删除,但重启服务器或重启 Server 服务后,系统会根据注册表设置重新创建。因此,修改注册表是根本解决办法。
- 你可以运行
-
安全性提示:
- 隐藏默认共享是安全加固的常见步骤(符合等保或 CIS 基准),可以减少攻击面。
- 保留
ADMIN$意味着管理员仍可通过网络访问系统目录,请确保你的管理员密码足够强壮,并限制了防火墙对 445 端口的访问来源。
No Comments