Cómo configurar los permisos de 'Usuarios autenticados' en un archivo determinado mediante secuencias de comandos en Win 7 +

Cómo configurar los permisos de 'Usuarios autenticados' en un archivo determinado mediante secuencias de comandos en Win 7 +

Tengo este archivo de secuencia de comandos que actualmente está configurando los permisos de 'Usuarios autenticados' para un ejecutable en 'ReadAndExecute'; funciona bien en Windows 10, pero necesita funcionar en Windows 7, y no es así:

$file = (Resolve-Path 'c:\Dir\file.exe').Path; 
$acl = (Get-Item $file).GetAccessControl('Access'); 
acl.SetAccessRuleProtection($True, $True); 
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule('Authenticated Users', 'Write', 'None', 'None', 'Allow'); 
$acl.RemoveAccessRuleAll($ar); 
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule('Authenticated Users', 'Modify', 'None', 'None', 'Allow'); 
$acl.RemoveAccessRuleAll($ar); 
$ar = New-Object System.Security.AccessControl.FileSystemAccessRule('Authenticated Users', 'ReadAndExecute', 'None', 'None', 'Allow'); 
$acl.SetAccessRule($ar); 
Set-ACL -Path $file -AclObject $acl; 

Esto se ejecuta, pero no establece los permisos para los usuarios autenticados. Si cambio la GetAccessControlllamada para que no tenga el 'Access'parámetro, en Win7 aparece este error:

The security identifier is not allowed to be the owner of this object.

¿Hay alguna forma de lograr lo que estoy tratando de hacer?

Requisitos adicionales:

  • No puedo instalar otra aplicación en la máquina, considérelo una instalación básica de Win 7
  • Tiene que ejecutarse de forma no interactiva, ya que es parte de un script de instalación desatendida.

información relacionada