我映射一个网络驱动器到本机的时候,发现本机的程序直接能访问读取网络驱动器,但是把本机的程序作为本机的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. IOS中UITableViewCell的重用机制原理

    创建UITableViewController子类的实例后,IDE生成的代码中有如下段落: - (UITableViewCell *)tableView:(UITableView *)tableVie ...

  2. 数据挖掘方面重要会议的最佳paper集合

    数据挖掘方面重要会议的最佳paper集合,兴许将陆续分析一下内容: 主要有KDD.SIGMOD.VLDB.ICML.SIGIR KDD (Data Mining) 2013 Simple and De ...

  3. Windows下Android Studio长时间停留在Building "Project Name" Gradle project info画面的解决方法

    问题描述: 创建好一个Android项目后,Android Studio长时间停留在Building [Project Name] Gradle project info画面不动. 原因: 此时And ...

  4. 用js生成二维码

    <!doctype html> <html> <meta charset="utf-8"/> <head> <script s ...

  5. JDK小技巧

    鉴于这段时间重新拾起Android,电脑上又是一大堆不同JDK版本的项目.来回切换JDK环境也够折磨人的. 不同版本JDK切换之后,java -version命令仍然显示的是之前的JDK版本,重启电脑 ...

  6. C#-高血压生活习惯数据模拟

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test ...

  7. 很棒的jQuery代码片段分享

    jQuery实现的内链接平滑滚动 不需要使用太复杂的插件,只要使用下载这段代码即可实现基于内部链接的平滑滚动 $('a[href^="#"]').bind('click.smoot ...

  8. iOS 格式化输出符号与类型转换

    1.iOS 格式化输出符号 %@    对象 %d,   %i 整数 %u     无符号整形 %f      浮点(双字节) %x,   %X  二进制整数 %o     八进制整数 %zi     ...

  9. GCD多线程 在子线程中获取网络图片 在主线程更新

    子线程中得所有数据都可以直接拿到主线程中使用 //当触摸屏幕的时候,从网络上下载一张图片到控制器的view上显示 -(void)touchesBegan:(NSSet *)touches withEv ...

  10. cer, pfx 创建,并且读取公钥/密钥,加解密 (C#程序实现)

    PKI技术(public key infrastructure)里面,cer文件和pfx文件是很常见的.通常cer文件里面保存着公钥以及用户的一些信息,pfx里面则含有私钥和公钥. 用makecert ...