Set-Acl
Cambia el descriptor de seguridad de un elemento especificado, como un archivo o una clave del Registro.
Sintaxis
ByPath (valor predeterminado)
Set-Acl
[-Path] <String[]>
[-AclObject] <Object>
[[-CentralAccessPolicy] <String>]
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
ByInputObject
Set-Acl
[-InputObject] <PSObject>
[-AclObject] <Object>
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
ByLiteralPath
Set-Acl
[-AclObject] <Object>
[[-CentralAccessPolicy] <String>]
-LiteralPath <String[]>
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Description
El cmdlet Set-Acl cambia el descriptor de seguridad de un elemento 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 de ruta de o el parámetro InputObject de para identificar el elemento cuyo descriptor de seguridad desea cambiar.
A continuación, use los parámetros AclObject o SecurityDescriptor para proporcionar un descriptor de seguridad que tenga los valores que desea aplicar.
Set-Acl aplica el descriptor de seguridad proporcionado.
Usa el valor del parámetro AclObject como modelo y cambia los valores del descriptor de seguridad del elemento para que coincidan con los valores del parámetro AclObject.
Ejemplos
Ejemplo 1: Copiar un descriptor de seguridad de un archivo a otro
$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL
Estos comandos copian los valores del descriptor de seguridad del archivo Dog.txt al descriptor de seguridad del archivo Cat.txt. Cuando se completan los comandos, 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 Set-Acl para cambiar los valores de la ACL de Cat.txt a 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 ACL del modelo, en este caso, la ACL de Dog.txt como se guarda en la variable $DogACL.
Ejemplo 2: Uso del operador de canalización para pasar un descriptor
Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"
Este comando es casi el mismo que el comando del ejemplo anterior, salvo que usa un operador de canalización para enviar el descriptor de seguridad de un Get-Aclcommand a un 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 cmdlet Set-Acl.
El segundo comando usa Set-Acl para aplicar el descriptor de seguridad de Dog.txt a Cat.txt.
Cuando se completa el comando, las ACL de los archivos Dog.txt y Cat.txt son idénticos.
Ejemplo 3: Aplicación de un descriptor de seguridad a varios archivos
$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl
Estos comandos aplican los descriptores de seguridad del archivo File0.txt a todos los archivos de texto del directorio C:\Temp y todos sus subdirectorios.
El primer comando obtiene el descriptor de seguridad del archivo File0.txt en el 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 en el directorio C:\Temp.
El parámetro
El operador de canalización (|) envía los objetos que representan los archivos recuperados al cmdlet Set-Acl, que aplica el descriptor de seguridad en el parámetro AclObject a todos los archivos de la canalización.
En la práctica, es mejor usar el parámetro WhatIf con todos los comandos Set-Acl que pueden afectar a más de un elemento.
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 volver a ejecutar el comando sin el parámetro WhatIf.
Parámetros
-AclObject
Especifica una ACL con los valores de propiedades deseados.
Set-Acl cambia la ACL del elemento especificado por la ruta de acceso o del parámetro InputObject para que coincida con los valores del objeto de seguridad especificado.
Puede guardar la salida de un comando de Get-Acl en una variable y, a continuación, usar el parámetro AclObject
Propiedades de parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 1 |
| Obligatorio: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-CentralAccessPolicy
Establece o cambia la directiva de acceso central del elemento. Escriba el identificador cap o el nombre descriptivo de una directiva de acceso central en el equipo.
A partir de Windows Server 2012, los administradores pueden usar Active Directory y directiva de grupo para establecer directivas de acceso central para usuarios y grupos. Para obtener más información, vea Control de acceso dinámico: Información general del escenario.
Este parámetro se introdujo en Windows PowerShell 3.0.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByPath
| Posición: | 2 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
ByLiteralPath
| Posición: | 2 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-ClearCentralAccessPolicy
Quita la directiva de acceso central del elemento especificado.
A partir de Windows Server 2012, los administradores pueden usar Active Directory y directiva de grupo para establecer directivas de acceso central para usuarios y grupos. Para obtener más información, vea Control de acceso dinámico: Información general del escenario.
Este parámetro se introdujo en Windows PowerShell 3.0.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByPath
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ByLiteralPath
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Confirm
Le pide confirmación antes de ejecutar el cmdlet.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | cf |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Exclude
Omite los elementos especificados. El valor de este parámetro define el parámetro Path. Escriba un elemento o patrón de ruta de acceso, como "*.txt". Se permiten los caracteres comodín.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Filter
Especifica un filtro en el formato o idioma del proveedor. El valor de este parámetro define 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 que PowerShell filtre los objetos una vez recuperados.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Include
Solo cambia los elementos especificados. El valor de este parámetro define el parámetro Path. Escriba un elemento o patrón de ruta de acceso, como "*.txt". Se permiten los caracteres comodín.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputObject
Cambia el descriptor de seguridad del objeto especificado. Escriba una variable que contenga el objeto o un comando que obtiene el objeto .
No se puede canalizar el objeto que se va a cambiar a Set-Acl. En su lugar, use el parámetro InputObject explícitamente en el comando .
Este parámetro se introdujo en Windows PowerShell 3.0.
Propiedades de parámetro
| Tipo: | PSObject |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByInputObject
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-LiteralPath
Cambia el descriptor de seguridad del elemento especificado. A diferencia de Path, el valor del parámetro LiteralPath se usa exactamente como se escribe. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.
Este parámetro se introdujo en Windows PowerShell 3.0.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | PSPath |
Conjuntos de parámetros
ByLiteralPath
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Passthru
Devuelve un objeto que representa el descriptor de seguridad que se cambió. De forma predeterminada, este cmdlet no genera ninguna salida.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Path
Cambia el descriptor de seguridad del elemento especificado. Escriba la ruta de acceso a un elemento, como una ruta de acceso a un archivo o una clave del Registro. Se permiten los caracteres comodín.
Si pasa un objeto de seguridad a
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
ByPath
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-UseTransaction
Incluye el comando en la transacción activa. Este parámetro solo es válido cuando una transacción está en curso. Para obtener más información, consulte about_Transactions.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | usetx |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Wi |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
System.Security.AccessControl.ObjectSecurity, System.Security.AccessControl.CommonSecurityDescriptor
Puede canalizar un objeto ACL o un descriptor de seguridad para Set-Acl.
Salidas
FileSecurity
De forma predeterminada, Set-Acl no genera ninguna salida.
Sin embargo, si usa el parámetro passthru, genera un objeto de seguridad.
El tipo del objeto de seguridad depende del tipo del elemento.
Notas
El cmdlet Set-Acl es compatible con el sistema de archivos de PowerShell y los proveedores del registro. Por lo tanto, puede usarlo para cambiar los descriptores de seguridad de archivos, directorios y claves del Registro.