Como definir permissões de 'Usuários Autenticados' em um determinado arquivo via script no Win 7 +

0

Eu tenho este arquivo de script que está atualmente fazendo as permissões de 'usuários autenticados' para um executável para 'ReadAndExecute' - ele funciona bem no Windows 10, mas ele 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 chamada GetAccessControl para não ter o parâmetro 'Access' , 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 simples do Win 7
  • Ele precisa ser executado de forma não interativa, pois faz parte de um script de instalação autônomo
por Chris Skardon 28.03.2018 / 19:35

0 respostas