我正在使用安装程序,它调用 icacls.exe 使用 powershell 设置文件夹权限,以便删除“用户”权限(如果已允许)并为管理员和 IIS 用户提供权限。剧本是
$folderPermissionList = (Get-Acl "C:\Program Files\Workspace").Access | ?{$_.IdentityReference -match "$BUILTIN\\Users"} | Select IdentityReference,FileSystemRights
If($folderPermissionList.FileSystemRights -match "FullControl")
{
Write-Host "Inside condition"
& icacls.exe "C:\Program Files\Workspace" /Q /T /remove "BUILTIN\Users"
}
Write-Host "outside condition"
& icacls.exe "C:\Program Files\Workspace" /Q /T /grant "BUILTIN\Administrators:`(OI`)`(CI`)`(F`)"
& icacls.exe "C:\Program Files\Workspace" /Q /T /grant "BUILTIN\IIS_IUSRS:`(OI`)`(CI`)`(F`)"
上述脚本在 Windows 服务器上可以运行,但在 Windows 10 操作系统中无法运行。尝试使用 Powershell 也没有任何响应,它被挂在 icacls 命令中。
Powershell版本:5.1.19041.1151 Windows 10 企业版 [21H1]
注意:以提升的权限执行并且卡住了[参考随附的结果]
知道为什么它不能在 Windows 10 上执行吗?或其他方法来设置权限而不会出现任何此类问题?
我也遇到同样的困难 “dir -Force”在父目录上告诉“d-r---”,在目录中的唯一文件上告诉“-a-hs-”。 icacls 告诉“完成”但没有改变任何内容,“rm”仍然被拒绝。 get-acl 说的是“完全控制”
=> 我从 wsl ubuntu 中执行了“rm -rf”,它很容易工作:-)