系统上下文具有所有权限,但无法通过 Azure 中的 运行 命令访问共享文件夹中的文件。为什么不?

System context has all permissions, but can't access file in share folder via Run Command in Azure. Why not?

场景:我们在共享文件夹中有一个文件。我们正在通过 Azure 中的 运行 命令使用 PowerShell 命令 运行 将文件从共享文件夹复制到本地计算机:

Copy-Item -Path \SHARE_FOLDER\installs\MY_FILE.TXT -Destination C:\LOCAL\ -Force

运行命令returns这个错误:

Copy-Item : Access to the path '\SHARE_FOLDER\installs\MY_FILE.TXT' is denied.
At C:\Packages\Plugins\Microsoft.CPlat.Core.RunCommandWindows.1.8\Downloads\s
cript11.ps1:1 char:1
+ Copy-Item -Path \SHARE_FOLDER\installs\MY_FILE.TXT -Destination C:\LO ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (\SHARE_FOLDER\installs\MY_FI 
   LE.TXT:FileInfo) [Copy-Item], UnauthorizedAccessException
    + FullyQualifiedErrorId : CopyFileInfoItemUnauthorizedAccessError,Microsof 
   t.PowerShell.Commands.CopyItemCommand
 
Copy-Item : Access to the path '\SHARE_FOLDER\installs\MY_FILE.TXT' is denied.
At C:\Packages\Plugins\Microsoft.CPlat.Core.RunCommandWindows.1.8\Downloads\s
cript11.ps1:1 char:1
+ Copy-Item -Path \SHARE_FOLDER\installs\MY_FILE.TXT -Destination C:\LO ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], UnauthorizedAcces 
   sException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.Pow 
   erShell.Commands.CopyItemCommand

运行 命令 运行s 作为系统 (docs)。系统在文件共享中具有所有者权限级别,在共享权限和安全性中具有完全控制(机器特定详细信息已模糊):

为什么系统无法复制文件?它似乎拥有这样做所需的所有权限。

将所有人添加到文件共享可以解决这个问题。文件复制成功

访问网络共享时,您必须使用网络帐户。 SYSTEM 是本地服务帐户,它们不存在于它们所连接的机器之外,因此它们不是域的一部分。您可以拥有域服务帐户,但这些帐户作为 AD 的一部分而不是计算机上的帐户存在。 在不同的计算机上使用 SYSTEM 帐户时,您指的是不同的帐户。

在域环境中,要访问网络共享,您可以将访问权限授予计算机帐户;当这些计算机连接到远程系统时,这适用于进程 运行 作为 LocalSystemNetworkService(但不是 LocalService,它在网络上提供匿名凭据)。 LocalSystem 将计算机的凭据提供给远程计算机。

AD 域中的每台计算机都由一个隐藏对象呈现,可以作为 COMPUTER$ 帐户找到。

COMPUTER here refers to the AD name of the domain computer.

因此需要在 NTFS 中添加 COMPUTER$ 帐户和共享权限,以便此计算机可以作为 LocalSystem 访问您的共享。

注意:您不能在工作组环境中使用计算机帐户;这仅适用于域。