Compartir a través de


Set-Acl

Cambia el descriptor de seguridad de un recurso especificado, como un archivo o una clave del Registro.

Sintaxis

Set-Acl [-Path] <string[]> [-AclObject] <ObjectSecurity> [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descripción

El cmdlet Set-Acl cambia el descriptor de seguridad de un recurso especificado, como un archivo o una clave del Registro, para que coincida con los valores de un descriptor de seguridad que proporcione.

Para usar Set-Acl, utilice el parámetro Path para identificar el recurso cuyo descriptor de seguridad desea cambiar y use el parámetro AclObject para proporcionar un descriptor de seguridad que tenga los valores que desea aplicar. Set-Acl usa el valor del parámetro AclObject como modelo y cambia los valores del descriptor de seguridad del recurso para que coincidan con los valores del parámetro AclObject.

Parámetros

-AclObject <ObjectSecurity>

Especifica una lista ACL con los valores de propiedad deseados. Set-Acl cambia la lista ACL del recurso especificado por el parámetro Path para coincidir con los valores del objeto de seguridad especificado.

Puede guardar el resultado del comando Get-Acl en una variable y usar posteriormente el parámetro AclObject para pasar la variable, o escribir el comando Get-Acl.

¿Requerido?

true

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

true (ByValue)

¿Aceptar caracteres comodín?

false

-Exclude <string[]>

Omite los elementos especificados. El valor de este parámetro califica el parámetro Path. Escriba un patrón o un elemento de la ruta de acceso, como "*.txt". Se permite el uso de caracteres comodín.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Filter <string>

Especifica un filtro en el formato o lenguaje del proveedor. El valor de este parámetro califica el parámetro Path. La sintaxis del filtro, incluido el uso de caracteres comodín, depende del proveedor. Los filtros son más eficaces que otros parámetros, ya que el proveedor los aplica al recuperar los objetos en lugar de hacer que Windows PowerShell filtre los objetos después de recuperarlos.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Include <string[]>

Cambia únicamente los elementos especificados. El valor de este parámetro califica el parámetro Path. Escriba un patrón o un elemento de la ruta de acceso, como "*.txt". Se permite el uso de caracteres comodín.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-PassThru

Devuelve un objeto que representa el descriptor de seguridad. De forma predeterminada, este cmdlet no genera resultados.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Path <string[]>

Identifica el recurso cuyo descriptor de seguridad desea cambiar. Indique la ruta de acceso a un recurso; por ejemplo, la ruta de acceso a un archivo o una clave del Registro. Se permite el uso de caracteres comodín.

Si pasa un objeto de seguridad a Set-Acl (ya sea mediante el parámetro AclObject o pasando un objeto de Get-Acl a Set-Acl) y omite el parámetro Path (nombre y valor), Set-Acl usará la ruta de acceso incluida en el objeto de seguridad.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Confirm

Solicita confirmación antes de ejecutar el comando.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-WhatIf

Describe lo que ocurriría si se ejecutara el comando sin ejecutarlo realmente.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-UseTransaction

Incluye el comando en la transacción activa. Este parámetro solo es válido cuando hay una transacción en curso. Para obtener más información, vea about_Transactions.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.Security.AccessControl.ObjectSecurity

Puede canalizar un descriptor de seguridad a Set-Acl.

Salidas

Ninguno o un objeto de seguridad

De forma predeterminada, Set-Acl no genera resultados. Sin embargo, si se utiliza el parámetro -Passthru, genera un objeto de seguridad. El tipo del objeto de seguridad depende del tipo del recurso.

Notas

El cmdlet Set-Acl es compatible con los proveedores del Registro y el sistema de archivos de Windows PowerShell. Como tal, puede usarlo para cambiar los descriptores de seguridad de archivos, directorios y claves del Registro.

Cuando especifique varios valores para un mismo parámetro, use comas para separarlos. Por ejemplo, "<nombreParámetro> <valor1>, <valor2>".

Ejemplo 1

C:\PS>$DogACL = get-acl c:\dog.txt

C:\PS>set-acl -path C:\cat.txt -AclObject $DogACL

Descripción
-----------
Estos comandos copian los valores del descriptor de seguridad del archivo Dog.txt al descriptor de seguridad del archivo Cat.txt. Cuando los comandos se terminan de ejecutar, los descriptores de seguridad de los archivos Dog.txt y Cat.txt son idénticos.

El primer comando usa el cmdlet Get-Acl para obtener el descriptor de seguridad del archivo Dog.txt. El operador de asignación (=) almacena el descriptor de seguridad en el valor de la variable $DogACL. 

El segundo comando usa el cmdlet Set-Acl para cambiar los valores de la lista ACL del archivo Cat.txt por los valores de $DogACL.

El valor del parámetro Path es la ruta de acceso al archivo Cat.txt. El valor del parámetro AclObject es la lista ACL de modelo; en este caso, la lista ACL del archivo Dog.txt tal como se ha guardado en la variable $DogACL.





Ejemplo 2

C:\PS>get-acl c:\dog.txt | set-acl -path C:\cat.txt

Descripción
-----------
Este comando es prácticamente igual que el comando del ejemplo anterior, salvo que usa un operador de canalización para enviar el descriptor de seguridad recuperado con el comando Get-Acl al comando Set-Acl.

El primer comando usa el cmdlet Get-Acl para obtener el descriptor de seguridad del archivo Dog.txt. El operador de canalización (|) pasa un objeto que representa el descriptor de seguridad Dog.txt al comando Set-Acl.

El segundo comando usa Set-Acl para aplicar el descriptor de seguridad de Dog.txt a Cat.txt. Cuando el comando se termina de ejecutar, las listas ACL de los archivos Dog.txt y Cat.txt son idénticas.





Ejemplo 3

C:\PS>$newACL = get-acl file0.txt

C:\PS>get-childitem c:\temp -recurse -include *.txt -force | set-acl -aclobject $newacl

Descripción
-----------
Estos comandos aplican los descriptores de seguridad del archivo File0.txt a todos los archivos de texto incluidos en el directorio C:\Temp y todos sus subdirectorios.

El primer comando obtiene el descriptor de seguridad del archivo File0.txt del directorio actual y usa el operador de asignación (=) para almacenarlo en la variable $newACL.

El primer comando de la canalización usa el cmdlet Get-ChildItem para obtener todos los archivos de texto incluidos en el directorio C:\Temp. El parámetro Recurse extiende el comando a todos los subdirectorios de C:\temp. El parámetro Include limita los archivos recuperados a los que tengan la extensión de nombre de archivo ".txt". El parámetro Force obtiene los archivos ocultos, que de otra manera quedarían excluidos. (No es posible usar "c:\temp\*.txt", ya que el parámetro Recurse se aplica a directorios, no a archivos.)

El operador de canalización (|) envía los objetos que representan los archivos recuperados al comando Set-Acl, que aplica el descriptor de seguridad del parámetro AclObject a todos los archivos de la canalización.

En la práctica, lo mejor es usar el parámetro Whatif con todos los comandos Set-Acl que puedan afectar a más de un recurso. En este caso, el segundo comando de la canalización sería "set-acl -aclobject $newacl -whatif". Este comando enumera los archivos que se verían afectados por el comando. Después de revisar el resultado, puede ejecutar de nuevo el comando sin el parámetro Whatif.





Vea también

Conceptos

Get-Acl