Das Cmdlet Remove-AzDataLakeGen2AclRecursive entfernt ACL rekursiv auf dem angegebenen Pfad.
Die ACL-Einträge in der ursprünglichen ACL, die dieselben AccessControlType-, DefaultScope- und EntityId-Einträge mit Eingabe-ACL-Einträgen (auch mit unterschiedlichen Berechtigungen) aufweisen, werden entfernt.
Beispiele
Beispiel 1: Rekursives Entfernen von ACL in einem Stammverzeichnis des Dateisystems
$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 :
Dieser Befehl erstellt zuerst ein ACL-Objekt mit 2 Acl-Einträgen und entfernt dann ACL rekursiv in einem Stammverzeichnis eines Dateisystems.
Beispiel 2: Rekursives Entfernen von ACL in einem Verzeichnis
$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 :
Dieser Befehl entfernt zuerst ACL rekursiv in einem Verzeichnis und ist fehlgeschlagen und wird dann mit ContinuationToken fortgesetzt, nachdem der Benutzer die fehlgeschlagene Datei behoben hat.
Beispiel 3: Rekursives Entfernen eines ACL-Abschnitts nach Block
Dieses Skript entfernt ACL rekursiv im Verzeichnisabschnitt nach Block, wobei die Blockgröße als BatchSize * MaxBatchCount verwendet wird. Die Blockgröße beträgt 50000 in diesem Skript.
Beispiel 4: Rekursives Entfernen von ACL in einem Verzeichnis und ContinueOnFailure, und dann von Fehlern nacheinander fortsetzen
$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
}
Dieser Befehl entfernt zuerst ACL rekursiv in ein Verzeichnis mit ContinueOnFailure, und einige Elemente sind fehlgeschlagen, und die fehlgeschlagenen Elemente werden dann einzeln fortgesetzt.
Parameter
-Acl
Die POSIX-Zugriffssteuerungsliste, die rekursiv für die Datei oder das Verzeichnis festgelegt werden soll.
Wenn die Größe des Datasets die Batchgröße überschreitet, wird der Vorgang in mehrere Anforderungen aufgeteilt, sodass der Fortschritt nachverfolgt werden kann.
Die Batchgröße sollte zwischen 1 und 2000 sein.
Der Standardwert ist 2000.
Legen Sie diesen Parameter fest, um Fehler zu ignorieren und die Verarbeitung mit dem Vorgang für andere Unterentitäten des Verzeichnisses fortzusetzen. Standardmäßig wird der Vorgang bei Auftreten von Fehlern schnell beendet.
Maximale Anzahl von Batches, die einzelne Änderungen des Zugriffssteuerungsvorgangs ausführen können. Wenn die Größe des Datasets maxBatchCount multipliziert BatchSize überschreitet, wird das Fortsetzungstoken zurückgegeben.
Der Pfad im angegebenen FileSystem, das Acl rekursiv ändern soll.
Kann eine Datei oder ein Verzeichnis sein.
Im Format "directory/file.txt" oder "directory1/directory2/" aus.
Überspringen Sie diesen Parameter, um Acl rekursiv aus dem Stammverzeichnis des Dateisystems zu ändern.
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.