程序以管理员身份运行,无法将日志文件写入具有仅限管理员 ACL 的文件夹

程序以管理员身份运行,无法将日志文件写入具有仅限管理员 ACL 的文件夹

我在我们所有的计算机上设置了一个文件夹,用于存放随机日志文件、配置等,并使用以下 PowerShell 进行部署:

#Create directory if it does not already exist
$path = "C:\Wagner"
[System.IO.Directory]::CreateDirectory($path)

#Remove inheritance 
$acl = Get-Acl $path
$acl.SetAccessRuleProtection($true,$false)

#Allow SYSTEM access
$System = [System.Security.AccessControl.FileSystemAccessRule]::new(
  "SYSTEM",
  "FullControl",
  "ContainerInherit, ObjectInherit", # inheritanceFlags
  "InheritOnly", # propagationFlags
  "Allow"
)
$acl.SetAccessRule($System)

#Allow Admin access
$Admins = [System.Security.AccessControl.FileSystemAccessRule]::new(
  "BUILTIN\Administrators",
  "FullControl",
  "ContainerInherit, ObjectInherit", # inheritanceFlags
  "InheritOnly", # propagationFlags
  "Allow"
)
$acl.SetAccessRule($Admins)

$acl | Set-Acl $path

如果我检查示例计算机上的 ACL,则一切看起来都是正确的:

PS C:\> (Get-ACL C:\Wagner).Access

FileSystemRights  : FullControl
AccessControlType : Allow
IdentityReference : NT AUTHORITY\SYSTEM
IsInherited       : False
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : InheritOnly

FileSystemRights  : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited       : False
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : InheritOnly

但是,如果我远程进入该机器并尝试安装程序(在本例中为 Tableau),我会收到错误-2147023274,我认为这意味着它无法写入日志文件。

.\TableauDesktop-64bit-2022-4-0.exe /quiet /norestart /log "c:\Wagner\tableauDesktopInstall.log" ACCEPTEULA=1 ACTIVATE_KEY="****-****-****" REMOVEINSTALLEDAPP=1

以上是我正在运行的命令(在提升的 PowerShell 窗口中),检查后$LASTEXITCODE得到-2147023274

如果我再次运行该命令(不带),/log程序将成功安装。我的 ACL 有问题吗?这全都是在 Windows 10 机器上。

相关内容