日期:2014-05-17  浏览次数:20831 次

关于系统服务访问共享文件夹的问题
本帖最后由 taurusboy 于 2012-03-29 10:12:12 编辑 大家好,目前碰到一个问题,寻找高手解决哈。
问题背景:
程序P是用C++编写,以windows系统服务的形式运行在A服务器(2003 server)上。B机器(windows xp)上有一个共享文件夹。
问题情况:
1、人工直接从A服务器上打开B机器上的共享文件,可以读取到。
2、用P程序读取B机器上的共享文件,无法读取到,报读不到文件长度。使用的是CFile直接读的方式。
3、使用测试程序(exe)读取B机器上的共享文件,代码与P程序中的代码一致,可以读取到B机器上的共享文件。
4、将P程序在系统服务设置界面上,填入用户名和密码,以administrator身份运行,仍然无法读取到共享文件。
可以读取到共享文件的情况:
5、将B机器上的guest用户开启,则P程序以administrator身份运行,就可以读取到共享文件。
6、不将B机器上的guest用户开启,将A服务器和B机器上分别建立相同的用户名和密码,然后让P程序以该用户名身份运行,则可以读取到B机器上的共享文件。

当程序实际运行时,B机器无法开启guest用户,A服务器和B机器也无法建立相同的用户名和密码。
但可以人工首先登陆一下A服务器,去登录一下B机器的共享文件夹,让服务器记录住B机器的用户名和密码。

想解决的问题:
该如何让P程序可以直接读取到B机器上的共享文件?
或者可以这样问:如何让系统服务能去取到服务器所记录的用户名和密码?(这个思路不一定正确)

转移战场,看看这里是否有高人在~
谢谢。
------解决方案--------------------
该回复于2012-03-28 16:41:53被版主删除
------解决方案--------------------
有没有人来啊~~~~
------解决方案--------------------
继续顶一下,很着急~~