NetDrive 的 nd3cmd——从命令行脚本化驱动器挂载

阅读时间 5 分钟 feature windows cli
Morgan
MorganStaff Engineer
NetDrive 的 nd3cmd 命令行工具无需打开图形界面即可挂载、卸载驱动器并查询状态,适用于计划任务、CI 代理和远程管理场景。

管理四十个 Windows 终端服务器会话的 IT 管理员,不想在每一台上都点击 NetDrive 的图形界面才能在登录时挂载共享驱动器。而彻夜无人值守运行的构建代理,根本无法点击任何图形界面。这两种情况都需要 NetDrive 驱动器管理器以可视化方式提供的同一套能力——挂载、卸载、查询状态——只是要能从脚本中调用。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

用自动化取代逐个点击图形界面挂载

NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。

  • 从脚本挂载、卸载并查询驱动器状态
  • 适用于计划任务、登录脚本和 CI 构建代理
  • 与图形界面驱动器管理器并行运行,而非取代它
WindowsmacOS
下载 NetDrive →

免费试用。提供终身与订阅方案。

为什么有些场景需要命令行方式

NetDrive 的驱动器管理器围绕点击 Add Drive、选择提供商、看着列表中出现一张卡片来设计——对于坐在机器前设置一两个驱动器的人来说,这个流程很顺畅。但一旦同样的挂载需要在无人值守的情况下重复几十次——多用户终端服务器上每个会话登录时、构建代理上每次 CI 任务开始时,或者管理员只能通过 SSH 或 RDP 远程访问、完全没兴趣启动图形界面的远程主机上——这套流程就行不通了。

NetDrive 早就为此提供了命令行工具——nd3cmd 在版本 3.8.921(2019-09-21)中加入,与 Microsoft Office 文件锁定和 macOS 深色模式同一版本发布。

NetDrive's drive manager showing multiple cloud accounts mounted as lettered drives

nd3cmd 能做什么

nd3cmd 涵盖了图形界面驱动器管理器所具备的核心操作——挂载已配置的驱动器、卸载驱动器、查询驱动器当前是否已连接——但可以从 PowerShell、批处理脚本,或目标机器上运行的任何配置管理工具中调用。这足以替代常见自动化场景下的手动点击操作:在登录脚本中挂载共享团队驱动器、在计划重启前干净地卸载,或在依赖挂载状态的任务开始实际工作前先检查驱动器状态。

具体的参数和语法在各版本之间有所变化,因此本文不会去猜测一条可能与目标机器上安装版本不匹配的命令行。NetDrive 支持论坛保存着针对当前运行版本的最新 nd3cmd 参考文档。

即使驱动器是通过脚本而非图形界面挂载的,登录查看的人依然能在 Windows 资源管理器中看到同样的文件状态叠加图标——不存在脚本挂载与手动挂载需要分别对账的两套状态。

Windows Explorer file status icon overlays showing sync state on a mounted cloud drive

从”工具存在”到可用脚本

  1. 确认 nd3cmd 随已安装的 NetDrive 版本一起提供——它是随桌面客户端一起打包的,不是单独下载的工具。
  2. 获取该版本对应的当前命令参考,从支持论坛获取,而不要沿用旧文章或其他机器安装版本中的语法。
  3. 先手动针对一个测试驱动器运行挂载、卸载和状态查询命令,确认每个命令的行为都符合参考文档描述,再让任何流程依赖它。
  4. 将确认无误的命令接入登录脚本、计划任务或 CI 步骤,并在任何需要通过该挂载读写的任务之前,把驱动器状态检查作为前置步骤。

Confirming a drive's mount status from a terminal session

在更大的架构中如何定位

根据正在构建的分支挂载不同 S3 存储桶的 CI 流水线,是一个很自然的应用场景——这与《用 NetDrive 实现 DevOps S3 测试装置》中介绍的模式相同,无需每次都由人手动选择存储桶。在管理端,服务大量并发用户会话的 Windows 终端服务器环境也能同样受益,在登录时为每个用户挂载各自的驱动器,而不必让每个人自己动手设置——关于这类多会话部署,可参阅《在 Windows Server 2022 上使用 NetDrive》。无论哪种情况,nd3cmd 都是与开机自动挂载行为并存——而非取代——的存在,适用于那些仍有人正常登录的机器。

总结

nd3cmd 把 NetDrive 图形界面已经提供的操作变成了可供脚本调用的能力,在挂载需要按计划、在构建代理上,或在数十个无人值守会话中同时发生时,这一点就变得至关重要。在针对已安装版本编写脚本之前,先查阅支持论坛获取准确语法,并参阅《NetDrive 开机自动挂载》了解在仍有人正常登录时的图形界面自动化选项。

— Morgan, NetDrive