Das Cmdlet Update-AzDataLakeGen2AclRecursive aktualisiert ACL rekursiv auf dem angegebenen Pfad.
Die Eingabe-ACL führt die ursprüngliche ACL zusammen: Wenn ACL-Eintrag mit demselben AccessControlType/EntityId/DefaultScope vorhanden ist, aktualisieren Sie die Berechtigung; fügen Sie andernfalls einen neuen ACL-Eintrag hinzu.
Beispiele
Beispiel 1: Rekursives Aktualisieren von ACL in einem Stammverzeichnis des Dateisystems
Dieser Befehl erstellt zuerst ein ACL-Objekt mit 3 ACL-Einträgen und aktualisiert dann ACL rekursiv in einem Stammverzeichnis eines Dateisystems.
Beispiel 2: Rekursives Aktualisieren von ACL in einem Verzeichnis und Fortsetzen von Fehlern mit ContinuationToken
$result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx
$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 = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx
$result
FailedEntries :
TotalDirectoriesSuccessfulCount : 100
TotalFilesSuccessfulCount : 1000
TotalFailureCount : 0
ContinuationToken :
Dieser Befehl aktualisiert zuerst ACL rekursiv in ein Verzeichnis und ist fehlgeschlagen und wird dann mit ContinuationToken fortgesetzt, nachdem der Benutzer die fehlgeschlagene Datei behoben hat.
Beispiel 3: Rekursives Aktualisieren eines ACL-Abschnitts nach Block
Dieses Skript aktualisiert ACL rekursiv im Verzeichnisabschnitt nach Block, wobei die Blockgröße als BatchSize * MaxBatchCount verwendet wird. Die Blockgröße beträgt 5000 in diesem Skript.
Beispiel 4: Rekursives Aktualisieren von ACL in einem Verzeichnis und ContinueOnFailure, und dann von Fehlern nacheinander fortsetzen
$result = Update-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
Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx
}
Dieser Befehl aktualisiert 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.