You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows容器中Srvnet服务无法启动,如何开启文件共享?

解决Windows容器srvnet驱动启动失败导致文件共享异常的问题

1. 给容器开启特权模式

Windows容器默认权限不足以加载srvnet这类内核驱动,启动容器时必须添加--privileged参数,示例命令:

docker run -it --privileged mcr.microsoft.com/windows/servercore:ltsc2019 powershell

如果是已运行的容器,只能删除后重新创建带特权参数的实例——运行中的容器无法修改权限模式。

2. 手动尝试加载srvnet驱动

进入容器的PowerShell,执行以下命令手动加载驱动:

sc.exe create srvnet type= kernel start= demand binpath= "\SystemRoot\System32\drivers\srvnet.sys"
sc.exe start srvnet

若启动失败,通过sc.exe query srvnet查看错误码,对应排查:

  • 错误1058:检查C:\Windows\System32\drivers\srvnet.sys是否存在,若缺失,从同版本Windows主机复制该文件到对应路径(必须保证版本一致)。
  • 错误1068:执行sc.exe qc srvnet查看DEPENDENCIES字段,确认所有依赖驱动均已启动。

3. 修复lanmanserver服务依赖链

  • 先确认Samss服务状态:
    sc.exe query Samss
    
  • 若Samss未启动,执行sc.exe start Samss启动它。
  • 若lanmanserver依赖关系异常,重新配置:
    sc.exe config lanmanserver depend= Samss/Srvv2
    

4. 配置SMB相关端口与服务

  • 若需从外部访问容器共享,启动容器时映射SMB协议的445端口:
    docker run -it --privileged -p 445:445 mcr.microsoft.com/windows/servercore:ltsc2019 powershell
    
  • 在容器内启用SMB服务:
    Set-SmbServerConfiguration -EnableSMB1Protocol $true -EnableSMB2Protocol $true
    

5. 验证共享访问

  • 启动lanmanserver服务:
    sc.exe start lanmanserver
    
  • 在容器内创建共享(以C盘为例):
    net share C$=C:\
    
  • 从主机或其他机器访问:\\<容器IP>\C$,输入容器内带密码的管理员账号即可。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:37:52