# 禁止系统自动创建 C$、D$ 等磁盘默认共享

在 Windows Server 2019 中，要禁止系统自动创建 `C$`、`D$` 等**磁盘默认共享**，同时保留 `IPC$`（用于进程间通信和域认证）和 `ADMIN$`（用于远程管理），最标准且有效的方法是修改注册表。

Windows 原生机制将“磁盘默认共享”和“管理共享（ADMIN$/IPC$）”视为两类不同的自动共享。通过修改注册表中的 `AutoShareServer` 键值，可以仅禁用磁盘共享而不影响管理共享。

### 方法一：修改注册表（推荐，永久生效）

这是微软官方支持的方法，专门用于服务器版本。

1. **打开注册表编辑器**：
    
    
    - 按 `Win + R`，输入 `regedit`，回车。
2. **定位到以下路径**：
    
    ```text
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    
    ```
3. **新建或修改 DWORD 值**：
    
    
    - 在右侧窗口查找名为 `AutoShareServer` 的项。
    - **如果存在**：双击它，将数值数据改为 `0`。
    - **如果不存在**：右键点击空白处 -&gt; **新建** -&gt; **DWORD (32-位) 值**，命名为 `AutoShareServer`，然后双击将其数值数据设置为 `0`。
    - *注意：确保基数选择为“十六进制”或“十进制”均可，0 就是 0。*
4. **重启服务或服务器**：
    
    
    - **方式 A（重启服务器）**：最稳妥，重启后生效。
    - **方式 B（重启 Server 服务）**：无需重启服务器，立即生效。 
        - 以管理员身份打开 PowerShell 或 CMD，运行：
        
        ```powershell
        Restart-Service LanmanServer -Force
        
        ```
        
        
        - 或者在“服务”管理器 (`services.msc`) 中找到 **Server** 服务，右键选择“重新启动”。
5. **验证结果**：
    
    
    - 打开 CMD，输入 `net share`。
    - 你应该能看到 `IPC$` 和 `ADMIN$` 依然存在，但 `C$`、`D$` 等磁盘共享已经消失。

---

### 方法二：使用 PowerShell 一键执行

如果你希望快速完成操作，可以直接以**管理员身份**运行以下 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

```

---

### 重要说明与注意事项

1. **关于 `ADMIN$` 和 `IPC$` 的保留**：
    
    
    - `AutoShareServer = 0` **只会**阻止系统自动挂载磁盘根目录（如 C$, D$）。
    - `ADMIN$` (指向 `C:\Windows`) 和 `IPC$` 是由 `LanmanServer` 服务的核心逻辑控制的，通常不受 `AutoShareServer` 影响，会默认保留，以确保域加入、组策略应用和远程管理工具（如 MMC、PsExec）正常工作。
2. **如果是客户端系统（如 Win 10/11）**：
    
    
    - 上述 `AutoShareServer` 键值在 Windows 客户端版本（非 Server 版）中通常**无效**。客户端系统使用的是 `AutoShareWks` 键值。但你当前使用的是 **Server 2019**，所以必须使用 `AutoShareServer`。
3. **临时手动删除（不推荐作为长期方案）**：
    
    
    - 你可以运行 `net share C$ /delete` 来手动删除，但重启服务器或重启 Server 服务后，系统会根据注册表设置重新创建。因此，修改注册表是根本解决办法。
4. **安全性提示**：
    
    
    - 隐藏默认共享是安全加固的常见步骤（符合等保或 CIS 基准），可以减少攻击面。
    - 保留 `ADMIN$` 意味着管理员仍可通过网络访问系统目录，请确保你的管理员密码足够强壮，并限制了防火墙对 445 端口的访问来源。