Administrar permisos NTFS mediante PowerShell
-
Ver permisos NTFS con
Get-ACL
en PowerShell - Mostrar permisos NTFS en PowerShell
- Obtener ACL en archivos de forma recursiva en PowerShell
Administrar permisos NTFS con una GUI lleva mucho tiempo, especialmente cuando se trabaja con muchos usuarios o grupos. Sin embargo, los cmdlets específicos de PowerShell pueden recuperar y asignar permisos NTFS.
Este artículo discutirá la administración de permisos NTFS con el comando Get-ACL
.
Ver permisos NTFS con Get-ACL
en PowerShell
Una lista de control de acceso (o ACL) es una lista de entradas de control de acceso (ACE) en la que cada lista contiene una ACE que identifica a un administrador y especifica los derechos de acceso.
El descriptor de seguridad de un objeto asegurable puede ser de dos tipos: DACL o SACL. Una DACL identifica a los usuarios y grupos a los que se les permite o deniega el acceso, mientras que una SACL controla el acceso.
PowerShell nos permite ver rápidamente los permisos de NTFS usando el cmdlet Get-ACL
. Aprenderemos a usar el cmdlet para ver los permisos NTFS para un archivo o carpeta en las siguientes secciones.
Mostrar permisos NTFS en PowerShell
Tradicionalmente, veríamos una ACL haciendo clic derecho en una carpeta, haciendo clic en Propiedades
, seleccionando la pestaña Seguridad
y haciendo clic en el botón Avanzado
. Podemos ver un ejemplo de cómo la GUI muestra los permisos a continuación.
Los siguientes ejemplos en este artículo asignan una ruta a la variable $dir
.
Código de ejemplo:
$dir = "C:\Windows\Temp"
Get-Acl -Path $dir
Producción :
Path Owner Access
---- ----- ------
Temp DESKTOP-7GI1260\KentMarion BUILTIN\Administrators Allow FullControl...
Sin embargo, ejecutar el comando Get-Acl
con el parámetro -Path
solo mostrará y generará la Lista de control de acceso en el nivel de carpeta. ¿Qué pasaría si quisiéramos verificar la Lista de control de acceso a nivel de archivo?
Obtener ACL en archivos de forma recursiva en PowerShell
Una de las funciones ventajosas de PowerShell es el uso de Pipeline. Las canalizaciones de PowerShell combinan una serie de varios comandos mediante un operador de canalización (|
).
Podemos usar el método de tubería para obtener la Lista de control de acceso en el nivel de archivo.
Necesitamos usar el comando Get-ChildItem
para lograr este escenario. El comando Get-ChildItem
recupera todos los archivos y carpetas dentro de un directorio.
Usemos nuestra variable anterior $dir
como ejemplo.
Código de ejemplo:
$dir = "C:\Windows\Temp"
Get-ChildItem $dir -Recurse | Get-Acl | Format-List | Out-File "C:\PS\output.txt"
En el ejemplo anterior, el parámetro de cambio -Recurse
es importante para recorrer todos los archivos y ejecutar el comando Get-Acl
. Al hacer el fragmento anterior, podremos obtener todos los permisos de la lista de control de acceso de todos los archivos en la carpeta Temp
.
También se sugiere utilizar el comando Out-File
para exportar todos los detalles en un archivo de texto, especialmente si tiene muchos archivos en la carpeta de destino.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn