如何在基于 Windows 的 Docker 容器中的文件夹上为 IIS_IUSRS 分配 WRITE 权限

如何在基于 Windows 的 Docker 容器中的文件夹上为 IIS_IUSRS 分配 WRITE 权限

我正在运行基于以下 Windows Server 2019 核心映像的 Docker 容器:

mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019

此容器正在运行 ASP.Net 4.8 应用程序并写入logs文件夹。以下是完整路径:

C:\inetpub\wwwroot\logs

我的应用程序位于wwwroot文件夹的根目录。我尝试授予Write用户权限IIS_IUSRSlogs但一直出现以下错误:

使用“1”个参数调用“SetAccessRule”时发生异常:“此访问控制列表不是规范形式,因此无法修改。

这是我的 PowerShell 代码:

$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("IIS_IUSRS", "Write", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl = Get-ACL "C:\inetpub\wwwroot\Logs"
$acl.AddAccessRule($accessRule)
Set-ACL -Path "C:\inetpub\wwwroot\Logs" -ACLObject $acl

错误发生在上面第 3 行调用的地方AddAccessRule

我该如何解决这个问题?

答案1

不需要 PowerShell。使用以下命令设置WRITE权限IIS_IUSRS

icacls C:\inetpub\wwwroot\logs /grant IIS_IUSRS:W /t /c

相关内容