在 Windows 中为 SYSTEM 用户映射网络驱动器

Jav*_* Mr 10 windows network-shares shared-folders

我有一个软件需要访问文件,就好像它们是机器本地的一样,所以我只是使用net use. 这按预期工作,但是软件本身作为具有 SYSTEM 用户帐户的服务运行,这不是可选的,也不是可配置的。我目前已将驱动器映射到我执行net use.

所以我的问题是,如何映射驱动器以便 SYSTEM 帐户可以访问它?

正如在这个问题中指出的那样,无法为所有用户映射驱动器。

在更一般的情况下,您如何以与 Linux 中相同的方式将整个系统的远程位置挂载到本地文件系统中(在启动时完全可以)。

小智 8

通过没有任何批处理文件的 cmd(管理员权限)的简单解决方案是:

schtasks /create /tn "my_mount" /tr "net use V: \\hostname\directory /persistent:yes" /sc onstart /RU SYSTEM
Run Code Online (Sandbox Code Playgroud)

然后重新启动服务器或执行:

schtasks /run /tn "my_mount"
Run Code Online (Sandbox Code Playgroud)

编辑:
用户 alfa_989 建议使用以下命令扩展名,我尚未测试过。
但它仍然可能对某人有帮助:

schtasks /create /tn "my_mount" /tr "net use V: \\hostname\directory /persistent:yes" /sc onstart /RU SYSTEM /RL HIGHEST
Run Code Online (Sandbox Code Playgroud)


bdr*_*dr9 2

我在尝试使用 CrashPlan 备份网络共享时遇到了此问题。由于 CrashPlan 的服务作为SYSTEM用户运行,因此它无法访问从用户帐户映射的网络共享。CrashPlan 提供了 Windows 计算机上的解决方法。
该解决方法为我解决了问题,并允许 CrashPlan 的服务访问我的网络共享。这也应该与您的问题有关,因为它具有相同的根本原因。

CrashPlan 关于此问题的文章
http://support.code42.com/../Mounting_Networked_Storage_Or_NAS_Devices_For_Backup

CrashPlan 针对 Windows 的解决方法
http://support.code42.com/CrashPlan/Latest/Backup/Back_Up_a_Windows_Network_Drive

概括

  1. 创建一个安装驱动器的批处理文件(包括net use您已经使用的命令)。
  2. 使用任务计划程序创建一个在启动时自动运行此批处理文件的任务。可以将任务设置为以SYSTEM用户身份运行。