我有一台 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 机器上,当我的服务尝试打开该文件夹上的特定文件时,我只会看到“访问被拒绝”。
感觉好像我错过了一些重要的步骤,但我似乎已经没有系统管理员的线索了。
答案1
它必须作为网络服务运行的原因是什么?出于安全目的,我将创建一个域用户帐户,以域用户身份运行该服务,并为该用户分配必要的权限。
答案2
这听起来确实应该可行。我会尝试 1) 模拟普通域用户帐户进行网络访问,而不是网络服务。这将检查您的模拟是否有效并且对网络资源有效。2) 更改共享和 NTFS 权限以明确授予您正在测试的特定计算机帐户访问权限(可能从授予完全控制权开始)。
尝试一下,并更新您的问题,说明您的进展情况。可能会让我们对这个问题有更多的了解。
如果您对 LogonUser 的调用开始看起来像是一个问题,那么您可能会在 StackOverflow 上得到更好的响应。
过去,当我尝试让计算机正确地以网络服务身份进行身份验证时,我曾遇到过奇怪的问题。现在,我通常通过使用已授予该任务所需的确切权限的域帐户来解决该问题。
答案3
域\计算机名称$
连接/验证其他服务器时,网络服务帐户显示如下
我知道这有效,因为我有一个使用网络服务的 Web 服务器应用程序池,该应用程序池通过美元账户连接到 SQL Server。
编辑:您是否曾尝试在谷歌上搜索“machinename$”...aarrgghh。