我正在尝试获取计算机上映射驱动器的列表作为Windows服务。如果我将代码作为普通程序运行,而不是作为 Windows 服务运行,我可以获得正确的列表。我已经看过几篇关于这个主题的帖子,但没有一篇给出明确的解决方案。
我在创建服务的同一帐户上运行该服务,并且该服务具有管理员权限。
有谁知道如何正确地做到这一点?
这是不可能的
请参阅以下 MSDN 文章
https://msdn.microsoft.com/en-us/library/windows/desktop/ms685143%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
如果服务配置为在用户帐户下运行,则系统始终为该用户创建新的登录会话,并在该新登录会话中启动该服务。因此,服务无法管理在用户的其他会话中建立的驱动器映射。
如果您使用的是启用了 UAC 的 Windows 7,则管理会话具有与常规用户会话不同的映射驱动器。打开管理命令提示符并运行net show
并检查映射的驱动器状态。
更新:我已经在我的Windows 10工作站上设置了启用链接连接,所以我在那里看不到这个问题。