请帮忙——我似乎无法理解这一点:
所有 Windows 环境。应用程序需要在网络共享中写入数据。相关应用程序位于 srv01 上,因此服务设置为使用 AD 服务用户“service-worker”登录。它被授予 OS 权限“以服务身份登录”、“以批处理身份登录”以及它所需的应用程序文件的权限,并且服务启动并正常工作。它可以写入 srv01 上的 UNC 共享。
但是,当尝试写入共享 \srv02\dir 时,应用程序报告“访问被拒绝”。对于 \srv02\dir,我已授予“service-worker”完全控制权限: 共享服务工作者的权限 并根据 NTFS 权限明智地更改和读取 \srv02\dir\subdir 的权限。
现在为了调试,我尝试使用 Powershell 重现错误
$username = 'service-worker'
$password = 'somePassword'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($username, $securePassword)
Invoke-Command -ComputerName srv01 -Credential $credential -ScriptBlock {
"Hello World" | Out-File -FilePath "\\srv02\dir\subdir\test1.txt"
}
这让我
PS H:\> C:\Users\myUser\Scripts\CreateUNCFileAsUser.ps1
Access to the path '\\srv02\dir\subdir\test1.txt' is denied.
+ CategoryInfo : OpenError: (:) [Out-File], UnauthorizedAccessException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand
+ PSComputerName : srv02
在 srv02 上,目录和用户的有效权限如下所示: 高级安全“有效权限”的结果
我遗漏了什么?用户也无法在 srv02 上读取。将其添加到与我相同的 NTFS 权限组(即对整个服务器的“完全控制”) - 同样的错误。然后尝试写入共享根目录 \srv02\dir\test1.txt - 同样的错误。尝试从 srv02 调用命令,它说它没有登录权限,这应该是正常的,我没问题。
编辑:在 srv01 上使用 powershell 时(因为 Invoke-Command 可能不允许超过一次跳转)我收到与上述相同的错误,唯一的区别是 PSComputername 是“srv01”。