小编典典

映射要由服务使用的网络驱动器

all

假设某些 Windows 服务使用需要映射网络驱动器且没有 UNC
路径的代码。启动服务时,如何使驱动器映射可用于服务会话?以服务用户身份登录并创建持久映射不会在实际服务的上下文中建立映射。


阅读 66

收藏
2022-06-04

共1个答案

小编典典

您要么需要修改服务,要么将其包装在辅助进程中:除了会话/驱动器访问问题之外,持久驱动器映射仅在交互式登录时恢复,而这些服务通常不会执行。

辅助进程方法可以非常简单:只需创建一个映射驱动器并启动“真实”服务的新服务。唯一不完全是微不足道的事情是:

  • 辅助服务需要将所有适当的 SCM 命令(启动/停止等)传递给实际服务。如果真正的服务接受自定义 SCM 命令,请记住也传递这些命令(不过,我不希望认为 UNC 路径具有异国情调的服务会使用此类命令......)

  • 在凭证方面,事情可能会变得有些棘手。如果真实服务运行在普通用户帐户下,您也可以在该帐户下运行助手服务,只要该帐户对网络共享具有适当的访问权限,一切都应该没问题。如果真正的服务只有在以 LOCALSYSTEM 或类似的方式运行时才能工作,事情会变得更有趣,因为它要么根本无法“看到”网络驱动器,要么需要一些凭证才能让事情正常工作。

2022-06-04