Como definir permissões de ‘Usuários autenticados’ em um determinado arquivo via script no Win 7 +

Como definir permissões de ‘Usuários autenticados’ em um determinado arquivo via script no Win 7 +

Eu tenho este arquivo de script que está atualmente definindo as permissões de 'Usuários autenticados' para um executável como 'ReadAndExecute' - funciona bem no Windows 10, mas precisa funcionar no Windows 7 - e não é:

$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; 

Isso é executado, mas não define as permissões para usuários autenticados, se eu alterar a GetAccessControlchamada para não ter o 'Access'parâmetro, no Win7 recebo este erro:

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

Existe alguma maneira de conseguir o que estou tentando fazer?

Requisitos extras:

  • Não consigo instalar outro aplicativo na máquina, considere uma instalação básica do Win 7
  • Ele deve ser executado de forma não interativa - pois faz parte de um script de instalação autônoma

informação relacionada