Командлет Remove-AzDataLakeGen2AclRecursive удаляет ACL рекурсивно по указанному пути.
Записи ACL в исходном ACL, которые имеют одинаковые элементы AccessControlType, DefaultScope и EntityId с входными записями ACL (даже с разными разрешениями) удалялся lbe.
Примеры
Пример 1. Удаление ACL рекурсивно в корневом каталоге файловой системы
$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 :
Эта команда сначала создает объект ACL с 2 записями списка acl, а затем удаляет ACL рекурсивно в корневом каталоге файловой системы.
Пример 2. Удаление ACL рекурсивно в каталоге
$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 :
Эта команда сначала удаляет ACL рекурсивно в каталоге и завершается сбоем, а затем возобновляется с помощью ContinuationToken после устранения ошибки пользователя.
Пример 3. Удаление рекурсивного фрагмента ACL по блоку
Этот скрипт удаляет ACL рекурсивно на блоке каталога по блоку, а размер блока — batchSize * MaxBatchCount. Размер блока составляет 50000 в этом скрипте.
Пример 4. Удаление ACL рекурсивно в каталоге и ContinueOnFailure, а затем возобновление из сбоев по одному
$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
}
Эта команда сначала удаляет ACL рекурсивно в каталог с помощью ContinueOnFailure, а некоторые элементы завершаются ошибкой, а затем возобновляют неудачные элементы по одному.
Параметры
-Acl
Список управления доступом POSIX для рекурсивного задания файла или каталога.
Если размер набора данных превышает размер пакета, операция будет разделена на несколько запросов, чтобы можно было отслеживать ход выполнения.
Размер пакета должен составлять от 1 до 2000.
Значение по умолчанию — 2000.
Установите этот параметр, чтобы игнорировать сбои и продолжить обработку с помощью операции в других под сущностях каталога. По умолчанию операция завершится быстро при возникновении сбоев.
Максимальное количество пакетов, которые могут выполняться одной операцией управления доступом. Если размер набора данных превышает MaxBatchCount умножение BatchSize, будет возвращен маркер продолжения.
Путь в указанной файловой системе, которая изменится рекурсивно.
Может быть файлом или каталогом.
В формате "directory/file.txt" или "directory1/directory2/".
Пропустите этот параметр, чтобы изменить Acl рекурсивно из корневого каталога файловой системы.
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.