我有一台运行服务(由我编写)的 XP SP3 机器,该服务运行是NT AUTHORITY\NETWORK SERVICE
为了访问网络共享。使用 filemon.exe,我可以看到该服务尝试OPEN
网络共享但获取ACCESS DENIED
.
网络共享是 Windows Server 2003 SP1 机器上的一个文件夹,该文件夹具有共享权限 = Everyone
(读取)和 NTFS 权限 = Domain Computers
(读取 + 执行 + 列出文件夹内容)。它没有明确授予的其他权限,但从 继承默认权限C:\
。我已验证 XP 机器是Domain Computers
.
在共享文件夹的机器上,我可以看到来自 XP 机器的成功网络登录事件。
在 XP 机器上,当我的服务尝试打开该文件夹中的特定文件时,我只看到 ACCESS DENIED。
感觉好像我错过了一些重要的步骤,但我似乎已经用完了 SysAdmin 线索。
它是否有理由作为网络服务运行?出于安全目的,我将创建一个域用户帐户,以域用户身份运行服务,并为用户分配必要的权限。
听起来确实应该有效。我会尝试 1) 模拟普通域用户帐户进行网络访问而不是网络服务。这将检查您的模拟是否有效并且对网络资源有效。2) 更改共享和 NTFS 权限,以明确授予您正在测试的特定计算机帐户的访问权限(可能从授予完全控制权开始)。
试一试,用你的方式更新你的问题。可能会让我们对这个问题有更多的了解。
如果您对 LogonUser 的调用开始出现问题,那么您可能会在 StackOverflow 上得到更好的响应。
过去,当我试图让计算机正确地作为网络服务进行身份验证时,我遇到了一些奇怪的问题。我现在通常通过使用已被授予任务所需的确切权限的域帐户来解决此问题。
域\机器名$
与其他服务器连接/验证时,网络服务帐户显示为这样
我知道这是可行的,因为我有一个使用网络服务的 Web 服务器应用程序池,该服务使用美元帐户连接到 SQL Server。
编辑:你有没有试过在谷歌搜索“machinename$”... aarrgghh。