我有一个Windows服务作为SERVER_X上的本地系统运行,它试图访问SERVER_Y上托pipe的UNC共享上的脚本。
根据下面的链接,我已经在SERVER_Y上授予SERVER_X计算机帐户访问UNC的权限。
如何授予对LocalSystem帐户的networking访问权限?
如何授予访问域networking中本地SYSTEM帐户的共享文件夹的权限
但是,Windows服务无法访问该文件(访问被拒绝的错误)。
dir \\SERVER_X\share Access is denied.
在安全事件日志(在SERVER_Y上),我看到SERVER_X试图以NT AUTHORITY \ ANONYMOUS LOGON身份访问UNC共享。 我会认为我应该在安全事件日志中看到计算机帐户(即DOMAIN \ SERVER_X)。

两台服务器都是Windows Server 2003 SE SP2。
任何帮助将不胜感激!
我发现这个微博客让我看着使用服务器的主机名与CNAME。
具体来说,下面的片段:
如果你回答了DNS名称parsing,你会是正确的。 如果名称parsing在环境中不能正常工作,则会导致请求Kerberos票证的应用程序实际请求错误的服务主体名称的服务票证 。 因此,如果您记得远程文件服务器,我试图连接到“ltwre-chd-mem1.chd.litwareinc.com”,但DNS服务器find了“ltwre-chd-mem1.litware.com”的logging。 由于我们在“litwareinc.com”域中find了远程文件服务器,因此Kerberos客户机请求Kerberos票据请求中指出的“cifs / ltwre-chd-mem1.litwareinc.com”服务票证,KDC响应KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN 。
和…
实际上,有几种不同的方法可以“解决”问题:
一个。 找出DNS为什么错误地parsing机器名称。
一世。 有这个名字的HOST或CNAMElogging吗?
II。 你configuration了WINS查找的DNS区域吗?
和…
如果您发现修复DNS问题是不可能的,那么下一个最好的解决scheme就是让应用程序使用服务器的FQDN。 请记住,应用程序供应商需要参与使用此修复程序。
注意:在Windows Server 2008主机上,我可以成功执行使用CNAME的dir命令。
解决scheme1:
使用主机名而不是CNAME。
我证实,如果从Windows Server 2003主机访问UNC共享与主机名(即\\HOSTNAME\share )而不是CNAME(即\\CNAME\share ),访问将正常工作。
示例 – 已处理:
dir \\HOSTNAME\share
示例 – 不工作:
dir \\CNAME\share Access is denied.
解决scheme2:
为CNAME设置一个SPN(服务主体名称)。
setspn -a HOST/CNAME SERVER
完成后, dir \\CNAME\share工作。
另请参阅如何将Windows计算机configuration为允许使用DNS别名进行文件共享以获取更多信息。
因为当您访问UNC共享而没有先前build立的networking凭据时,您最终会以匿名身份login。 本地系统帐户显然不是一个有效的networkinglogin。
在用户帐户下运行该服务以绕过该问题。