Repaso permisos PowerShell

Añadir permiso NTFS a una carpeta

https://www.jesusninoc.com/08/19/anadir-permiso-ntfs-a-una-carpeta

Atributos Valor Descripción
ContainerInherit 1 Los objetos contenedores secundarios se heredan de la ACE.
None 0 Los objetos secundarios no se heredan de la ACE.
ObjectInherit 2 Los objetos hoja secundarios se heredan de la ACE.

In short, access control entries (ACEs) flagged only with «Object Inheritance» apply that ACE to files in a folder, but not subfolders within that folder. ACEs flagged only with «Container Inheritance» apply that ACE to subfolders of the folder but not files.

Ejercicios

Asignar un permiso a una carpeta

# "'pepito', 'FullControl', 'ContainerInherit, ObjectInherit', 'None', 'Allow'" | Out-File permisos.txt

$permisos = Get-Acl -Path directorio
gc  .\permisos.txt | %{
$_
    $regla = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList ($_.replace(", '","@").split("@").replace("'",""))
    $permisos.SetAccessRule($regla)
    $permisos | Set-Acl -Path directorio
}

Asignar varios permisos a distintas carpetas

# "'carpeta1ggasdfasdf', 'pepito', 'FullControl', 'ContainerInherit, ObjectInherit', 'None', 'Allow'" > permisosconcarpetas.txt
# "carpeta2adsfasdfsd', 'gi1', 'FullControl', 'ContainerInherit, ObjectInherit', 'None', 'Allow'" >> permisosconcarpetas.txt

gc  ..\permisosconcarpetas.txt | %{
    $permisos = Get-Acl -Path directorio
    $_
    $var=$_.replace(", '","@").split("@").replace("'","")
    mkdir $var[0] -force
    $regla = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList ($var[1..$var.Length])
    $permisos.SetAccessRule($regla)
    $regla = $null
    $permisos | Set-Acl -Path $var[0]
}