我有两个 Windows 服务,“ServiceA”和“ServiceB”。每个服务分别以用户名“UserA”和“UserB”运行,其他方面这些服务完全相同(同一服务的独立实例)。
我希望能够设置映射驱动器,以便用户 A 的 Z: 驱动器指向网络共享 (\FileServer\ServiceAFiles),而用户 B 的 Z: 驱动器指向另一个共享 (\FileServer\ServiceBFiles)。我无法单独配置服务;无论我在哪里指向一个服务查找文件,另一个服务也会在那里查找,因此设置 Z: 和 Y: 驱动器是不可能的。
我尝试设置“登录时重新连接”的映射驱动器,但服务看不到驱动器,因此似乎服务没有进行“传统”登录。Google 告诉我,唯一的方法是更改服务的源代码,使其在启动时创建映射驱动器。不幸的是,该服务来自第三方,我无法访问源代码。
实际上,我只是希望两个服务使用相同的路径指向两个不同的网络共享,所以我的问题是,有没有一种解决方法可以让我做我想做的事情?
答案1
我以前在 Windows Server 2003 上做过这个,使用域帐户以交互方式授予登录权限和服务权限,并使用登录脚本组策略将一个简单的驱动器映射脚本部署到这些帐户。它确实有效,但那是很久以前的事了(当然,是针对无法处理 UNC 路径的旧服务应用程序)。
这是哪个 Windows 版本?您使用的是哪些帐户,本地帐户还是域帐户?您如何映射驱动器?尝试使用启动/登录脚本策略。也许服务需要旧的“与桌面交互”标志来实现这一点,我现在想不起来。