我有一个应用程序使用网络驱动器 (K:) 上的文件,该驱动器通常在用户登录时通过网络使用 K:\myserver\myshare ... 连接。服务器上安装的 Windows 服务应该可以访问相同的文件。但显然,该服务不会触发登录脚本。
在我看来,所有映射的网络驱动器内容都可用于 Windows 会话(终端服务器或客户端),而不可用于根据定义无需用户登录系统即可运行的服务。如果是这样,我有什么选择?
答案1
如果服务以本地系统或网络服务或特定域用户身份运行,则它可以通过 UNC 路径访问文件,也可以使用该WNetAddConnection
功能映射网络驱动器。在本地系统或网络服务的情况下,连接是在 Active Directory 计算机对象的上下文中进行的。
如果服务以本地用户身份运行,UNC 路径将不起作用,但它仍然可以映射网络驱动器,WNetAddConnection
只要它可以提供有效的用户名和密码。
(如果由于某种原因 Win32 API 不可用,则net use
在子进程中运行该命令也可以。)
答案2
通过 UNC 路径访问所需文件。