本文介绍如何通过阿里云Windows ECS实例挂载SMB文件系统。在配置完Windows ECS实例后,可以通过手动或自动方式挂载SMB文件系统。

前提条件

您已完成以下操作:

配置Windows ECS实例

以下操作步骤,请确保在挂载每台Windows服务器执行一次即可,不需要在每次挂载时都执行一次。

  1. 连接到ECS实例
  2. 对于Windows 2016以上的系统,需要配置允许客户端匿名访问,执行以下命令。

    REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters /f /v AllowInsecureGuestAuth /t REG_DWORD /d 1

  3. 开启Workstation服务。
    1. 选择所有程序 > 附件 > 运行或使用快捷键 Win+R,输入 services.msc进入本地服务。
    2. 在服务中找到Workstation,确认运行状态为 已启动,启动类型为 自动

      正常情况下,Workstation服务默认为启动状态。

      Workstation
  4. 开启TCP/IP NetBIOS Helper服务。
    1. 打开网络与共享中心,单击主机所连网络。
    2. 单击 属性,双击 Internet 协议版本 4进入属性框,单击 高级
    3. 高级TCP IP设置对话框中,选择WINS > 启用TCP/IP上的NetBIOS启用 TCP/IP 上的 NetBIO
    4. 选择所有程序 > 附件 > 运行或使用快捷键 Win+R,输入 services.msc进入本地服务。
    5. 在服务中找到TCP/IP NetBIOS Helper,确认运行状态为 已启动,启动类型为 自动

      正常情况下,TCP/IP NetBIOS Helper服务默认为启动状态。

      TCP/IP NetBIOS Helpe

手动挂载SMB文件系统

  1. 执行命令挂载SMB文件系统
    打开命令行窗口,执行以下命令挂载文件系统。
    net use Z: \\file-system-id.region.nas.aliyuncs.com\myshare

    挂载命令格式: net use <挂载目标盘符> \\ <挂载点地址>\myshare

    • 挂载目标盘符:指当前Windows系统上要挂载的目标盘符,请根据实际值替换。
      说明 目标盘符需配置为当前不存在的盘符。
    • 挂载点地址:指创建文件系统挂载点时,自动生成的挂载点地址,请根据实际值替换。您可以在NAS控制台,找到目标文件系统,单击管理,进入详情页面获取挂载地址。
    • myshare:SMB的共享名称,不允许变更。
    说明 对于Windows 2019及更高版本的操作系统,为了让所有用户都能访问挂载点,推荐使用Powershell命令New-SmbGlobalMapping进行挂载。挂载命令如下所示:

    New-SmbGlobalMapping -LocalPath z: -RemotePath \\file-system-id.region.nas.aliyuncs.com\myshare -Persistent $true

    如果用户机器配置了AD域控,命令会需要输入身份。输入AD域任何一个合法身份即可。

  2. 确认SMB文件系统挂载成功
    执行net use命令,检查挂载结果。

    如果回显包含如下类似信息,说明挂载成功。

    查看挂载结果挂载成功后,您可以在ECS上访问NAS文件系统,执行读取或写入操作。

常见错误排查

如果挂载失败,请进行排查。详情请参见挂载失败的排查与处理方法

自动挂载SMB文件系统

在配置自动挂载前,请先确认手动挂载成功,避免ECS启动失败。

说明 在Windows操作系统中,系统服务(Services)、计划任务(Scheduled Tasks)以及很多系统调用都是以SYSTEM系统账号进行操作的,而下面描述的挂载是以登录系统的用户身份执行的。如果需要以SYSTEM身份进行挂载,请参见以SYSTEM身份挂载文件卷解决SQLServer使用NAS SMB文件卷等问题
  1. 打开命令行窗口,执行以下命令,配置脚本auto_mount.bat。
    echo %HOMEPATH%\mount.bat > auto_mount.bat
  2. 执行以下三条命令,将auto_mount.bat配置成用户登录后自动运行,并配置其他人的读和执行权限。
    MOVE auto_mount.bat "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\auto_mount.bat"

    icacls "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\auto_mount.bat" /grant everyone:rx

    REG ADD HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /f /v MyMount /t REG_SZ /d "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\auto_mount.bat"

  3. 执行以下命令,配置实际执行挂载命令的脚本mount.bat。
    echo net use z: \\file-system-id.region.nas.aliyuncs.com\myshare > "%HOMEPATH%\mount.bat"

    请根据实际值替换挂载点地址file-system-id.region.nas.aliyuncs.com

    说明 如果文件系统支持AD、ACL,并且您希望使用Windows登录用户身份以外的其他域用户身份挂载SMB文件系统,则可以执行以下命令配置脚本。

    echo net use z: \\file-system-id.region.nas.aliyuncs.com\myshare /user:user@domain password > "%HOMEPATH%\mount.bat"

    请根据实际值替换挂载点地址 file-system-id.region.nas.aliyuncs.com,域用户名是 user@domain,域用户密码是 password

  4. 重启ECS服务器。
    用户重新登录后,执行net use命令验证挂载结果。