我使用VS 2010在.NET C#中开发了一个Windows服务,我正在调用DriveInfo.GetDrives()
但它没有获得Z:
驱动器(映射的网络驱动器),
我做了一些谷歌搜索,发现一些结果指向Windows帐户权限,所以我尝试了所有帐户类型的服务安装程序,如LocalSystem,User,LocalService,NetworkService但没有工作,我仍然无法获取驱动器{{ 1}}。
我做了另一个测试,调试了windows服务(作为控制台应用程序),我可以通过这种方式获得驱动器Z:
。
我的问题有解决方法吗?
答案 0 :(得分:6)
您需要使用映射了网络驱动器的帐户运行Windows服务,例如,您曾用作控制台应用程序运行的帐户。正如Hans建议您不要在Windows服务中使用映射驱动器,因为它们是与真实用户相关联的概念。
但是,如果您真的想继续使用映射驱动器,请参阅此相关问题,了解与此特定情况相关的陷阱和变通方法:
答案 1 :(得分:2)
云端硬盘映射与LUID相关联,您可以在同一用户下拥有多个身份验证ID(例如服务,正常完整性级别,高完整性级别等)。
您可以在用户会话中运行正常的完整性级别进程,以提供用户创建的映射驱动器列表。这是how Windows Explorer copies mapped drives for elevated setup programs。