我映射一个网络驱动器到本机的时候,发现本机的程序直接能访问读取网络驱动器,但是把本机的程序作为本机的windows服务运行的时候就不能访问了。

Qt中的QDir::exist(folder)访问失败。这样导致的原因是映射网络驱动器,需要服务程序运行的权限账户和远程共享文件的机器要运行在同一个域(Domain)

下面,用PStool这个工具就可以了,它直接使用SYSTEM账户权限,来映射网络驱动器。这样,远程驱动器和本机的service就处于同一个域下了。

注意:这个是比较hack的做法,并不推荐这么做。微软是不支持的。

1.用psexec创建网络驱动器:

admin 权限运行CMD,然后运行psexec -i -s cmd.exe

然后在新打开的CMD窗口中运行以下命令映射网络驱动器Z盘, net use z: \\server_ip\share_folder /persistent:yes

以上的net命令可能会让你输入远程的系统用户名和密码,我的远程是XP,所以用户名密码是:Administrator/无密码

注: 所有微软的Windows 系统默认管理员用户都是Administator 而密码是你自己设定的,系统没有默认密码

2.运行本机windows服务,成功访问网络驱动器Z

references:

http://stackoverflow.com/questions/18632193/directory-exists-returns-false-for-mapped-drive-in-c-sharp-coding

http://stackoverflow.com/questions/3622089/windows-service-cant-access-network-share

http://serverfault.com/questions/177139/windows-service-cant-access-network-share

http://stackoverflow.com/questions/182750/map-a-network-drive-to-be-used-by-a-service

https://technet.microsoft.com/en-us/sysinternals/psexec   (PStool工具下载)

关于windows service不能访问网络共享盘(NetWork Drive)的解决方案的更多相关文章

  1. 解决Windows服务无法访问网络映射盘的问题

    下载工具psexec 下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec 百度地址:https://pan.baid ...

  2. C# 带用户密码访问网络共享

    原文:C# 带用户密码访问网络共享 调用WNetUseConnection API 函数详细参数参考:https://msdn.microsoft.com/en-us/library/windows/ ...

  3. 以服务方式启动tomcat无法访问NFS共享盘

    用startup.bat方式启动tomcat,程序的可以访问NFS共享盘的文件.但用 1).以服务的方式启动tomcat 2).或者用windows的任务计划去执行startup.bat的方式启动to ...

  4. windows windows计划任务访问网络存储NAS的问题

    windows 计划任务访问网络存储NAS的问题 WINDOWS 计划任务访问网络存储(NAS),程序找不到路径解决办法 Windows 服务器端运行的软件,大多时需要开机自启,这时Windows 计 ...

  5. Windows 10 访问网络共享 总是提示用户名或密码不正确的解决方法

    今天同事在Windows10上共享了一些文件,其他使用Windows 7的同事都可以正常使用,唯独我是使用Windows 10操作系统的,和别人输入一样的用户名和密码,却总是告诉我:用户名或密码不正确 ...

  6. ASP.NET访问网络映射盘&实现文件上传读取功能

    最近在改Web的时候,遇到一个问题,要跨机器访问共享文件夹,以实现文件正常上传下载功能. 要实现该功能,可以采用HTTP的方式,也可以使用网络映射磁盘的方式,今天主要给大家分享一下使用网络映射磁盘的方 ...

  7. windows service 之访问权限(有NetworkService和LocalSystem的区分)

    最近写了一个关于从局域网的算机上下载文件的winodws service,最初认为应该没什么大的问题.通过本地的调试也没发现问题.但是当我把程序发布后发现服务报错“访问路径被拒绝”,我的第一感觉,肯定 ...

  8. MSSQL Server2012备份所有数据库到网络共享盘上面,并自动删除几天前的备份。。

    --要备份到哪一服务的IP网络位置,要提前打开文件夹共享.这里还要输入用户名和密码,下面这一行是建立共享 exec master..xp_cmdshell 'net use \\192.168.8.1 ...

  9. Linux NSF网络共享盘

    服务器安装: yum -y install nfs-utils rpcbind 服务器配置 :vi /etc/exports 例: /root/docs  192.168.1.*(rw,sync,no ...

随机推荐

  1. 遇到sql server的问题时如何排查

    The First Things I Look At On A SQL Server和Page2介绍了遇到sql server的问题时如何排查问题,Display Code列出了sql代码. 包括如下 ...

  2. Swift: Initialization-2

    Failable Initializers 有的时候,可能是参数问题.需要的外部资源没有到位等原因,初始化可能失败.为了应对这种情况,我们可以定义一个或多个可失败的构造方法. init? A fail ...

  3. discuz! X3 门户文章添加字段

    1. 首先需要去数据表里[llgp_portal_article_title]手动添加需要添加的字段. (注意: 数据表前缀依据自己的设置而定) 2. 修改模版template\default\por ...

  4. Activity的任务栈Task以及启动模式与Intent的Flag详解

    什么是任务栈(Task) 官方文档是这么解释的 任务是指在执行特定作业时与用户交互的一系列 Activity. 这些 Activity 按照各自的打开顺序排列在堆栈(即“返回栈”)中. 其实就是以栈的 ...

  5. EasyUI-datagrid获取编辑行的数据

    可以在页面对datagrid的数据直接进行修改,然后提交到数据库,但是要求在提交前获取datagrid的所有行的数据.API提供了getData方法 最后这样写才搞定 var    arr=$(‘#d ...

  6. BestCoder 1st Anniversary

    Souvenir  Accepts: 1078  Submissions: 2366  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 26 ...

  7. 织梦(dedecms)如何清空全部文章和删除后新增文章id号归1的方法

    很多朋友在使用织梦程序做网站的过程中,难免需要添加一些测试文章用于测试网站功能模板等,还有些人朋友网站改版需要变更内容的时候,面对着众多的老文章后总是一筹莫展! 由于织梦后台并不自带一键删除整站文章的 ...

  8. lucene查询排序结果原理总结

    参考文章 Lucene3.0结果排序原理+操作+示例 Lucene的排序算法 一句话总结lucene排序算法是什么样的 关键几个概念 参考文档: http://lucene.apache.org/co ...

  9. 在Global.asax文件里实现通用防SQL注入漏洞程序(适应于post/get请求)

    可使用Global.asax中的Application_BeginRequest(object sender, EventArgs e)事件来实现表单或者URL提交数据的获取,获取后传给SQLInje ...

  10. ExtJs的事件机制Event(学员总结)

    一.事件的三种绑定方式 1.HTML/DHTML 在标签中直接增加属性触发事件 [javascript] view plaincopy <script type="text/javas ...