Rutina Remove-AzDataLakeGen2AclRecursive odebere rekurzivně seznam ACL na zadané cestě.
Položky seznamu ACL v původním seznamu ACL, které mají stejný AccessControlType, DefaultScope a EntityId se vstupními položkami seznamu ACL (i s různými oprávněními), se odeberou.
Příklady
Příklad 1: Rekurzivní odebrání seznamu ACL v kořenovém adresáři systému souborů
$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 :
Tento příkaz nejprve vytvoří objekt ACL se 2 položkami acl a potom odebere seznam ACL rekurzivně v kořenovém adresáři systému souborů.
Příklad 2: Rekurzivní odebrání seznamu ACL v adresáři
$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 :
Tento příkaz nejprve rekurzivně odebere seznam ACL v adresáři a selhal, a potom po opravě souboru, který selhal, pokračovat v pokračováním s Atributem ContinuationToken.
Příklad 3: Odebrání rekurzivního bloku ACL podle bloku dat
Tento skript rekurzivně odebere seznam ACL u bloků adresářů podle bloku dat s velikostí bloku bloků dat jako BatchSize * MaxBatchCount. Velikost bloku dat je v tomto skriptu 50000.
Příklad 4: Rekurzivně odeberte seznam ACL v adresáři a ContinueOnFailure a pak pokračovat v selháních po druhém
$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
}
Tento příkaz nejprve rekurzivně odebere seznam ACL do adresáře s parametrem ContinueOnFailure a některé položky se nezdařily a potom obnoví položky, které selhaly.
Parametry
-Acl
Seznam řízení přístupu POSIX pro rekurzivní nastavení souboru nebo adresáře.
Pokud velikost sady dat překročí velikost dávky, operace se rozdělí na několik požadavků, aby bylo možné sledovat průběh.
Velikost dávky by měla být v rozmezí od 1 do 2000.
Výchozí hodnota je 2000.
Nastavte tento parametr tak, aby ignoroval chyby a pokračoval ve zpracování s operací u jiných dílčích entit adresáře. Ve výchozím nastavení se operace rychle ukončí při výskytu selhání.
Maximální počet dávek, které může provést jedna změna operace řízení přístupu. Pokud velikost datové sady překročí MaxBatchCount násobení BatchSize, token pokračování se vrátí.
Cesta v zadaném systému souborů, která se má změnit acl rekurzivně.
Může to být soubor nebo adresář.
Ve formátu adresář/file.txtnebo directory1/directory2/.
Pokud chcete změnit seznam ACL rekurzivně z kořenového adresáře systému souborů, přeskočte tento parametr.
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.