Set-Acl
Altera o descritor de segurança de um item especificado, como um arquivo ou uma chave do Registro.
Sintaxe
Set-Acl
[-Path] <String[]>
[-AclObject] <Object>
[[-CentralAccessPolicy] <String>]
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Set-Acl
[-InputObject] <PSObject>
[-AclObject] <Object>
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Set-Acl
-LiteralPath <String[]>
[-AclObject] <Object>
[[-CentralAccessPolicy] <String>]
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Description
O cmdlet Set-Acl
altera o descritor de segurança de um item especificado, como um arquivo ou uma chave do Registro, para corresponder aos valores em um descritor de segurança fornecido.
Para usar Set-Acl
aplica o descritor de segurança fornecido.
Ele usa o valor do parâmetro AclObject como um modelo e altera os valores no descritor de segurança do item para corresponder aos valores no parâmetro AclObject.
Exemplos
Exemplo 1: copiar um descritor de segurança de um arquivo para outro
$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL
Esses comandos copiam os valores do descritor de segurança do arquivo Dog.txt para o descritor de segurança do arquivo Cat.txt. Quando os comandos são concluídos, os descritores de segurança dos arquivos Dog.txt e Cat.txt são idênticos.
O primeiro comando usa o cmdlet Get-Acl para obter o descritor de segurança do arquivo Dog.txt. O operador de atribuição (=) armazena o descritor de segurança no valor da variável $DogACL.
O segundo comando usa Set-Acl
para alterar os valores na ACL de Cat.txt para os valores em $DogACL.
O valor do parâmetro Path é o caminho para o arquivo Cat.txt. O valor do parâmetro AclObject é a ACL do modelo, nesse caso, a ACL de Dog.txt conforme salva na variável $DogACL.
Exemplo 2: Usar o operador de pipeline para passar um descritor
Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"
Esse comando é quase o mesmo que o comando no exemplo anterior, exceto que ele usa um operador de pipeline para enviar o descritor de segurança de um Get-Aclcommand para um comando Set-Acl
.
O primeiro comando usa o cmdlet Get-Acl para obter o descritor de segurança do arquivo Dog.txt.
O operador de pipeline (|) passa um objeto que representa o descritor de segurança Dog.txt para o cmdlet Set-Acl
.
O segundo comando usa Set-Acl
para aplicar o descritor de segurança de Dog.txt a Cat.txt.
Quando o comando é concluído, as ACLs dos arquivos Dog.txt e Cat.txt são idênticas.
Exemplo 3: aplicar um descritor de segurança a vários arquivos
$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl
Esses comandos aplicam os descritores de segurança no arquivo File0.txt a todos os arquivos de texto no diretório C:\Temp e todos os seus subdiretórios.
O primeiro comando obtém o descritor de segurança do arquivo File0.txt no diretório atual e usa o operador de atribuição (=) para armazená-lo na variável $NewACL.
O primeiro comando no pipeline usa o cmdlet Get-ChildItem para obter todos os arquivos de texto no diretório C:\Temp. O parâmetro Recurse estende o comando para todos os subdiretórios de C:\temp. O parâmetro Include limita os arquivos recuperados para aqueles com a extensão de nome de arquivo ".txt". O parâmetro Force obtém arquivos ocultos, que de outra forma seriam excluídos. (Não é possível usar "c:\temp*.txt", porque o parâmetro Recurse funciona em diretórios, não em arquivos.)
O operador de pipeline (|) envia os objetos que representam os arquivos recuperados para o cmdlet Set-Acl
, que aplica o descritor de segurança no parâmetro AclObject a todos os arquivos no pipeline.
Na prática, é melhor usar o parâmetro WhatIf com todos os comandos Set-Acl
que podem afetar mais de um item.
Nesse caso, o segundo comando no pipeline seria "Set-Acl -AclObject $NewAcl -WhatIf
".
Esse comando lista os arquivos que seriam afetados pelo comando.
Depois de examinar o resultado, você pode executar o comando novamente sem o parâmetro WhatIf.
Parâmetros
-AclObject
Especifica uma ACL com os valores de propriedade desejados.
Você pode salvar a saída de um comando Get-Acl em uma variável e usar o parâmetro AclObject para passar a variável ou digitar um comando Get-Acl.
Tipo: | Object |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-CentralAccessPolicy
Estabelece ou altera a política de acesso central do item. Insira a ID do CAP ou o nome amigável de uma política de acesso central no computador.
A partir do Windows Server 2012, os administradores podem usar o Active Directory e a Política de Grupo para definir políticas de acesso central para usuários e grupos. Para obter mais informações, consulte Controle de Acesso Dinâmico: Visão geral do cenário.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | String |
Cargo: | 2 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-ClearCentralAccessPolicy
Remove a política de acesso central do item especificado.
A partir do Windows Server 2012, os administradores podem usar o Active Directory e a Política de Grupo para definir políticas de acesso central para usuários e grupos. Para obter mais informações, consulte Controle de Acesso Dinâmico: Visão geral do cenário.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Confirm
Solicita a confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Exclude
Omite os itens especificados. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como "*.txt". Curingas são permitidos.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-Filter
Especifica um filtro no formato ou idioma do provedor. O valor desse parâmetro qualifica o parâmetro Path. A sintaxe do filtro, incluindo o uso de caracteres curinga, depende do provedor. Os filtros são mais eficientes do que outros parâmetros, pois o provedor os aplica ao recuperar os objetos, em vez de fazer com que o PowerShell filtre os objetos depois de recuperados.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-Include
Altera apenas os itens especificados. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como "*.txt". Curingas são permitidos.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-InputObject
Altera o descritor de segurança do objeto especificado. Insira uma variável que contenha o objeto ou um comando que obtém o objeto.
Não é possível canalizar o objeto a ser alterado para Set-Acl. Em vez disso, use o parâmetro InputObject explicitamente no comando.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | PSObject |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-LiteralPath
Altera o descritor de segurança do item especificado.
Ao contrário docaminho
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | String[] |
Aliases: | PSPath |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Passthru
Retorna um objeto que representa o descritor de segurança que foi alterado. Por padrão, esse cmdlet não gera nenhuma saída.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Path
Altera o descritor de segurança do item especificado. Insira o caminho para um item, como um caminho para um arquivo ou chave do Registro. Curingas são permitidos.
Se você passar um objeto de segurança para Set-Acl
(usando os parâmetros AclObject ou SecurityDescriptor ou passando um objeto de segurança de Get-Acl para Set-Acl
), e omitir o parâmetro Path (nome e valor), Set-Acl
usará o caminho incluído no objeto de segurança.
Tipo: | String[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-UseTransaction
Inclui o comando na transação ativa. Esse parâmetro só é válido quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.
Tipo: | SwitchParameter |
Aliases: | usetx |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
System.Security.AccessControl.ObjectSecurity, System.Security.AccessControl.CommonSecurityDescriptor
Você pode canalizar um objeto ACL ou um descritor de segurança para Set-Acl
.
Saídas
Por padrão, Set-Acl
não gera nenhuma saída.
No entanto, se você usar o parâmetro Passthru, ele gerará um objeto de segurança.
O tipo do objeto de segurança depende do tipo do item.
Observações
O cmdlet Set-Acl
é compatível com o sistema de arquivos do PowerShell e provedores de registro. Dessa forma, você pode usá-lo para alterar os descritores de segurança de arquivos, diretórios e chaves do Registro.