Denegar permiso a carpetas y archivos

Denegar permiso a carpetas y archivos

Necesito denegar un grupo a la carpeta/archivos C:\Windows\Installer

Intento usar lo siguiente, pero solo se aplica a la carpeta, pero no a todos los archivos, se aplica a algunos archivos.

$path = "C:\Windows\Installer"
 $acl = Get-Acl $path
 $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("YourUsers","FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
 $acl.AddAccessRule($AccessRule)
 Set-Acl -AclObject $acl -Path $path

¿Me falta algo en mi guión?

EDITAR: Después de verificar el permiso de los archivos que puedo eliminar, parece que Heredar está deshabilitado

¿Cómo puedo verificar si Heredar está deshabilitado o no y, si está deshabilitado, habilitarlo?

Necesito aplicar esto a la máquina 5000, por eso lo hago mediante un script.

Respuesta1

Solo está aplicando el cambio de ACL a la carpeta que especificó $path, para aplicar la ACL a todo lo que está en la carpeta necesita enumerar cada elemento de forma recursiva:

$path = "C:\Windows\Installer"
$items = Get-ChildItem -Recurse $path

# Enables inheritance on all items in folder
foreach ($item in $items)
{
  $acl = Get-acl $item.FullName
  $acl.SetAccessRuleProtection($false,$true)
  Set-Acl -AclObject -Path $item.FullName
}

# Sets file / folder permission to desired state
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("YourUsers","FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
foreach ($item in $items)
{
  $acl = Get-acl $item.FullName
  # Compare item's folder permission against root folder, if different apply ACL
  if ((Compare-Object -ReferenceObject (Get-ACL $path) -DifferentObject (Get-ACL $item) -Property access) -ne $null)
  {
    $acl.AddAccessRule($AccessRule)
    Set-Acl -AclObject $item.FullName
  }
}
  

información relacionada