O cmdlet Remove-AzDataLakeGen2AclRecursive remove a ACL recursivamente no caminho especificado.
As entradas acl na ACL original, que tem o mesmo AccessControlType, DefaultScope e EntityId com entradas ACL de entrada (mesmo com permissão diferente) serão removidas.
Exemplos
Exemplo 1: remover ACL recursivamente em um diretório raiz do sistema de arquivos
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -DefaultScope
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -InputObject $acl
Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -Context $ctx
WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission.
FailedEntries :
TotalDirectoriesSuccessfulCount : 7
TotalFilesSuccessfulCount : 5
TotalFailureCount : 0
ContinuationToken :
Esse comando primeiro cria um objeto ACL com 2 entradas de acl e, em seguida, remove ACL recursivamente em um diretório raiz de um sistema de arquivos.
Exemplo 2: remover ACL recursivamente em um diretório
$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx
WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission.
$result
FailedEntries : {dir1/dir2/file4}
TotalDirectoriesSuccessfulCount : 500
TotalFilesSuccessfulCount : 2500
TotalFailureCount : 1
ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA==
$result.FailedEntries
Name IsDirectory ErrorMessage
---- ----------- ------------
dir0/dir2/file4 False This request is not authorized to perform this operation using this permission.
# user need fix the failed item , then can resume with ContinuationToken
$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx
WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission.
$result
FailedEntries :
TotalDirectoriesSuccessfulCount : 100
TotalFilesSuccessfulCount : 1000
TotalFailureCount : 0
ContinuationToken :
Esse comando primeiro remove a ACL recursivamente em um diretório e falha e, em seguida, retoma com ContinuationToken depois que o usuário corrige o arquivo com falha.
Exemplo 3: remover ACL recursivamente parte por parte
Esse script removerá ACL recursivamente no diretório parte por parte, com tamanho de parte como BatchSize * MaxBatchCount. O tamanho da parte é 50000 neste script.
Exemplo 4: remover ACL recursivamente em um diretório e ContinueOnFailure e, em seguida, retomar das falhas um a um
$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx
$result
FailedEntries : {dir0/dir1/file1, dir0/dir2/file4}
TotalDirectoriesSuccessfulCount : 100
TotalFilesSuccessfulCount : 500
TotalFailureCount : 2
ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA==
$result.FailedEntries
Name IsDirectory ErrorMessage
---- ----------- ------------
dir0/dir1/file1 False This request is not authorized to perform this operation using this permission.
dir0/dir2/file4 False This request is not authorized to perform this operation using this permission.
# user need fix the failed item , then can resume with ContinuationToken
foreach ($path in $result.FailedEntries.Name)
{
# user code to fix failed entry in $path
#set ACL again
Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx
}
Esse comando primeiro remove a ACL recursivamente para um diretório com ContinueOnFailure e alguns itens falharam e retomam os itens com falha um a um.
Parâmetros
-Acl
A lista de controle de acesso POSIX a ser definida recursivamente para o arquivo ou diretório.
Se o tamanho do conjunto de dados exceder o tamanho do lote, a operação será dividida em várias solicitações para que o progresso possa ser acompanhado.
O tamanho do lote deve estar entre 1 e 2000.
O padrão é 2000.
Defina esse parâmetro para ignorar falhas e continuar o processamento com a operação em outras sub-entidades do diretório. Padrão, a operação será encerrada rapidamente ao encontrar falhas.
Número máximo de lotes que a operação controle de acesso de alteração única pode ser executada. Se o tamanho do conjunto de dados exceder MaxBatchCount multiplicar BatchSize, o token de continuação será retornado.
O caminho no FileSystem especificado que para alterar Acl recursivamente.
Pode ser um arquivo ou diretório.
No formato 'directory/file.txt' ou 'directory1/directory2/'.
Ignore definir esse parâmetro para alterar acl recursivamente do diretório raiz do sistema de arquivos.
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.
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.