Cómo obtener-Acl para un usuario específico en PowerShell
-
Introducción a
Get-Acl
en PowerShell - Recuperar ACL para un Usuario Específico
-
Interpretar la Salida de
Get-Acl
- Ejemplos Prácticos
-
Usar
Get-Acl
para Comprobar Permisos para un Usuario Específico en PowerShell - Conclusión

PowerShell, una poderosa herramienta de automatización, proporciona numerosos cmdlets para gestionar varios aspectos de un entorno Windows.
Uno de los cmdlets fundamentales es Get-Acl
, que significa Lista de Control de Acceso. Permite a los administradores recuperar e inspeccionar el descriptor de seguridad (permisos) de un archivo, carpeta o clave del registro.
En este artículo, profundizaremos en las complejidades del uso de Get-Acl
específicamente para un usuario en particular. Cubriremos la sintaxis, opciones y ejemplos prácticos para ayudarle a gestionar eficazmente los derechos de acceso en su entorno Windows.
Introducción a Get-Acl
en PowerShell
Get-Acl
es un cmdlet de PowerShell utilizado para recuperar la lista de control de acceso (ACL) para un archivo, directorio o clave del registro. La ACL contiene una lista de entradas de control de acceso (ACE) que definen quién puede acceder al objeto y qué nivel de acceso tiene.
Entender y gestionar permisos es crucial para mantener un entorno informático seguro y organizado. Get-Acl
empodera a los administradores al proporcionar un medio para inspeccionar y modificar permisos de manera programática.
Sintaxis Básica:
Get-Acl [-Path] <String[]> [-Audit] [-AllCentralAccessPolicies] [-Directory] [-Filter <String>] [-Include <String[]>] [-LiteralPath <String[]>] [-Owner] [-Access <String>] [-UseTransaction] [<CommonParameters>]
Parámetros Comunes:
-Path |
Especifica la ruta del elemento para el cual recuperar la ACL. |
-Audit |
Recupera reglas de auditoría. |
-Owner |
Recupera la información del propietario. |
-Access |
Recupera solo tipos específicos de reglas de acceso. |
-UseTransaction |
Permite el uso de una transacción para el cmdlet. |
-InputObject |
Proporciona el Descriptor de Seguridad para el objeto específico. |
-LiteralPath |
Se utiliza para especificar la ruta de un recurso o archivo. El valor para este parámetro debe usarse tal como está escrito. |
Opciones Avanzadas:
-AllCentralAccessPolicies |
Recupera todas las políticas de acceso central. |
-Directory |
Especifica que el elemento es un directorio. |
-Filter |
Filtra los resultados según los criterios especificados. |
-Include |
Recupera solo los elementos especificados. |
-Exclude |
Omite el elemento específico. Debe proporcionar la ruta aquí. |
Recuperar ACL para un Usuario Específico
Usando el Parámetro Path
La manera más sencilla de recuperar la ACL para un usuario específico es usando el parámetro Path
junto con la ruta del elemento (archivo, directorio o clave del registro).
Get-Acl -Path 'C:\Example\File.txt'
Especificando el Usuario Con Where-Object
Para filtrar los resultados para un usuario específico, puede utilizar el cmdlet Where-Object
en conjunto con Get-Acl
. Esto le permite seleccionar solo los ACEs relevantes para el usuario deseado.
Get-Acl -Path 'C:\Example\File.txt' | Where-Object { $_.Access | Where-Object { $_.IdentityReference -eq 'DOMAIN\User' } }
El código está buscando reglas de acceso específicas dentro de la ACL del archivo C:\Example\File.txt
que pertenecen al usuario con la identidad 'DOMAIN\User'
. Si hay reglas coincidentes, se mostrarán en la salida. Si no, la salida estará vacía.
Interpretar la Salida de Get-Acl
Reglas de Acceso
La salida de Get-Acl
contendrá información sobre las reglas de acceso. Cada regla especifica un usuario o grupo, un tipo de acceso (por ejemplo, Lectura, Escritura) y si la regla permite o deniega ese acceso.
Reglas de Auditoría
Si se utiliza el parámetro -Audit
, también se incluirán reglas de auditoría. Estas reglas especifican qué tipos de acceso deben ser auditados para un usuario o grupo en particular.
Propietario y Grupo
Get-Acl
también puede recuperar información sobre el propietario del elemento y el grupo asociado con él.
Ejemplos Prácticos
Ejemplo 1: Recuperando ACL para un Archivo
El comando a continuación recupera la Lista de Control de Acceso (ACL) para el archivo ubicado en C:\Example\File.txt
. Este comando devolverá información sobre los permisos y reglas de acceso asociadas con ese archivo específico.
Get-Acl -Path 'C:\Example\File.txt'
Ejemplo 2: Obteniendo ACL para un Directorio
El comando a continuación funciona de la misma manera que el comando anterior pero recupera ACL para un directorio diferente.
Get-Acl -Path 'C:\Example\Directory'
Ejemplo 3: Comprobando los Permisos de una Clave del Registro
El comando a continuación recupera la Lista de Control de Acceso (ACL) para la clave del registro ubicada en HKLM:\SOFTWARE\ExampleKey
. Este comando devolverá información sobre los permisos y reglas de acceso asociadas con esa clave del registro específica.
Get-Acl -Path 'HKLM:\SOFTWARE\ExampleKey'
Ejemplo 4: Filtrando por Tipo de Acceso:
Puede utilizar el parámetro -Access
para recuperar solo tipos específicos de reglas de acceso (por ejemplo, Lectura, Escritura).
Get-Acl -Path 'C:\Example\File.txt' -Access Read, Write
Ejemplo 5: Formateo de Salida:
Puede formatear la salida usando cmdlets como Format-Table
o Format-List
para una mejor legibilidad.
Get-Acl -Path 'C:\Example\File.txt' | Format-Table -Property Path, AccessToString
Usar Get-Acl
para Comprobar Permisos para un Usuario Específico en PowerShell
A veces, necesitamos comprobar permisos para un usuario específico. Necesitamos esto para diversos propósitos, como controlar el acceso a un archivo en particular. Con la ayuda de PowerShell, podemos ver fácilmente los permisos para acceder al archivo.
A continuación se presenta un script de PowerShell a través del cual vamos a comprobar el estado de los permisos para los Administradores del Sistema.
Get-Acl g:\ | Select-Object -ExpandProperty Access | Where-Object identityreference -EQ "BUILTIN\Administrators"
Este código recupera la información de control de acceso para el directorio ubicado en g:\
y luego filtra esa información para mostrar solo las reglas de acceso para el grupo "Administrators"
. Esto puede ser útil para auditar o gestionar permisos para un directorio específico.
La salida del código anterior será una lista de reglas de acceso asignadas específicamente al grupo "Administrators"
para el directorio ubicado en g:\
. La salida incluirá detalles sobre los permisos otorgados, la identidad a la cual se aplican los permisos y otra información relacionada.
FileSystemRights : 268435456
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly
FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
Conclusión
Get-Acl
es un cmdlet poderoso que juega un papel crucial en la gestión de permisos dentro de un entorno Windows. Al entender su sintaxis y utilizar sus diversos parámetros, los administradores pueden recuperar y analizar eficazmente la información de control de acceso.
Este conocimiento es invaluable para mantener un entorno informático seguro y organizado.
Recuerde tener cuidado al hacer cambios en los permisos y siempre tenga copias de seguridad adecuadas antes de modificar ACLs. Con Get-Acl
como parte de su kit de herramientas de PowerShell, tendrá una herramienta valiosa para mantener un entorno Windows seguro y bien gestionado.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn