2016-11-21 23 views
0

我在两台不同的2008服务器上有一个VB Classic Windows服务,它们访问2012服务器上的同一文件夹。两台2008服务器都配置相同(可能不是)运行相同的应用程序软件。一个应用程序可以很好地访问UNC文件,另一个服务器上的相同应用程序说该文件不存在,并且始终使用objFSO.Exists(UNCfilename)返回false。我无法在服务器中看到差异,并且有枯竭的地方看。这里的一些背景:VB经典Windows服务说UNC文件不存在,在第二台服务器上工作

  • 两种服务以管理员身份运行
  • 在VB运行服务以管理员身份,一个失败,一个没有2012年
  • UNC文件夹与大家共享,完全控制
  • 所有在同一个子网中的服务器
  • 所有服务器上运行的工作组不是域
  • 所有防火墙是关闭
  • 我可以看到UNC文件夹和文件ŝ两个服务器
  • C#服务以管理员身份运行在两台服务器上看到这些文件(没有,VB的服务转换为C#是不是一种选择)
  • 迪尔(UNCfilename)在一个不工作或者在使用Windows资源管理器服务器,在另一个

两台2008服务器必须有所不同,但我不知道它可能是什么。我错过了什么?

+0

当您在Windows资源管理器中检查时,您确定您使用的是与VB软件运行时相同的用户和权限? – DaveInCaz

+0

它可能类似于https://support.microsoft.com/en-us/kb/3035277 – DaveInCaz

+0

该文章有承诺,但它已被设置为提升没有提示。我以管理员身份登录,并以管理员身份在VB中运行应用程序。当它作为服务运行时,我已将用户设置为管理员。 – Velocedge

回答

0

嗯,我找到了解决方案...并不完全明白为什么这是我发现的唯一解决方案,但毕竟这一次,我并不在乎!

DaveInCaz对映射驱动器的评论使我朝着正确的方向发展。我们没有,但我想知道如果我们做了会发生什么。我下面的代码添加到程序:

remoteUser = "Administrator" 
remoteServerName = "CADERed5" 'The name of the 2012 server 
myUNCPath = "\\192.168.100.4\c\Program Files (x86)\..." 

Set NetworkObject = CreateObject("WScript.Network") 
NetworkObject.MapNetworkDrive "", myUNCPath, False, remoteServerName & "\" & remoteUser, remotePassword 
If objFSO.FolderExists(myUNCPath) Then 
... 

我不得不使用的目标(2012年)服务器的管理员通过服务器的名称为前缀的凭据。基本上,我成为该服务器的管理员,它允许我读取文件。

相关问题