Set-Acl
Altera o descritor de segurança de um item especificado, como um arquivo ou uma chave do Registro.
Sintaxe
ByPath (Predefinição)
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
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, utilize o parâmetro Path ou InputObject para identificar o item do qual deseja alterar o descritor de segurança.
Em seguida, use os parâmetros AclObject ou SecurityDescriptor para fornecer um descritor de segurança que tenha os valores que pretende aplicar.
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 ficheiro 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, neste caso, a ACL de Dog.txt como 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 ficheiros
$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 a todos os subdiretórios de C:\temp. O parâmetro Include limita os arquivos recuperados àqueles 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.
Neste caso, o segundo comando no pipeline seria "Set-Acl -AclObject $NewAcl -WhatIf".
Este comando lista os arquivos que seriam afetados pelo comando.
Depois de revisar 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.
Set-Acl altera a ACL do item especificado pelo parâmetro Path ou InputObject para corresponder aos valores do objeto de segurança especificado.
Você pode salvar a saída de um comando Get-Acl em uma variável e, em seguida, usar o parâmetro AclObject para passar a variável ou digitar um comando Get-Acl.
Propriedades dos parâmetros
| Tipo: | Object |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 1 |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-CentralAccessPolicy
Estabelece ou altera a política de acesso central do item. Insira o ID 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 Ative Directory e a Diretiva de Grupo para definir políticas de acesso central para usuários e grupos. Para obter mais informações, consulte Controlo de Acesso Dinâmico: Visão Geral do Cenário.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
ByPath
| Position: | 2 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
ByLiteralPath
| Position: | 2 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-ClearCentralAccessPolicy
Remove a política de acesso central do item especificado.
A partir do Windows Server 2012, os administradores podem usar o Ative Directory e a Diretiva de Grupo para definir políticas de acesso central para usuários e grupos. Para obter mais informações, consulte Controlo de Acesso Dinâmico: Visão Geral do Cenário.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
ByPath
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
ByLiteralPath
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Confirm
Solicita confirmação antes de executar o cmdlet.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | Cf. |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | 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.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-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 curingas, depende do provedor. Os filtros são mais eficientes do que outros parâmetros, porque o provedor os aplica ao recuperar os objetos, em vez de fazer com que o PowerShell filtre os objetos depois que eles são recuperados.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-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.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-InputObject
Altera o descritor de segurança do objeto especificado. Insira uma variável que contenha o objeto ou um comando que obtenha 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.
Propriedades dos parâmetros
| Tipo: | PSObject |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
ByInputObject
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-LiteralPath
Altera o descritor de segurança do item especificado. Ao contrário de Path, o valor do parâmetro LiteralPath é usado exatamente como está digitado. Nenhum caractere é interpretado como carta curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell para não interpretar quaisquer caracteres como sequências de escape.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | PSPath |
Conjuntos de parâmetros
ByLiteralPath
| Position: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | 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.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | 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 o AclObject ou SecurityDescriptor parâmetros 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.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
ByPath
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-UseTransaction
Inclui o comando na transação ativa. Este parâmetro é válido somente quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | Usetx |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | Wi |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
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
FileSecurity
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.
Notas
O cmdlet Set-Acl é suportado pelo sistema de arquivos do PowerShell e pelos provedores de registro. Como tal, você pode usá-lo para alterar os descritores de segurança de arquivos, diretórios e chaves do Registro.