Remove-AzDataLakeGen2AclRecursive
Rimuovere l'ACL in modo ricorsivo nel percorso specificato.
Sintassi
Remove-AzDataLakeGen2AclRecursive
[-FileSystem] <String>
[[-Path] <String>]
[-ContinuationToken <String>]
-Acl <PSPathAccessControlEntry[]>
[-ContinueOnFailure]
[-BatchSize <Int32>]
[-MaxBatchCount <Int32>]
[-AsJob]
[-Context <IStorageContext>]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il cmdlet Remove-AzDataLakeGen2AclRecursive rimuove l'ACL in modo ricorsivo nel percorso specificato. Le voci ACL nell'ACL originale, che hanno lo stesso AccessControlType, DefaultScope ed EntityId con voci ACL di input (anche con autorizzazioni diverse) verranno rimosse.
Esempio
Esempio 1: Rimuovere l'ACL in modo ricorsivo in una directiry radice del file system
$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 :
Questo comando crea innanzitutto un oggetto ACL con 2 voci acl, quindi rimuove l'ACL in modo ricorsivo in una directory radice di un file system.
Esempio 2: Rimuovere ACL in modo ricorsivo in una directory
$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 :
Questo comando rimuove prima L'ACL in modo ricorsivo in una directory e non è riuscito, quindi riprende con ContinuationToken dopo che l'utente corregge il file non riuscito.
Esempio 3: Rimuovere blocco ACL in modo ricorsivo per blocco
$token = $null
$TotalDirectoriesSuccess = 0
$TotalFilesSuccess = 0
$totalFailure = 0
$FailedEntries = New-Object System.Collections.Generic.List[System.Object]
do
{
$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 1000 -MaxBatchCount 50 -ContinuationToken $token -Context $ctx
# echo $result
$TotalFilesSuccess += $result.TotalFilesSuccessfulCount
$TotalDirectoriesSuccess += $result.TotalDirectoriesSuccessfulCount
$totalFailure += $result.TotalFailureCount
$FailedEntries += $result.FailedEntries
$token = $result.ContinuationToken
}while (($token -ne $null) -and ($result.TotalFailureCount -eq 0))
echo ""
echo "[Result Summary]"
echo "TotalDirectoriesSuccessfulCount: `t$($TotalDirectoriesSuccess)"
echo "TotalFilesSuccessfulCount: `t`t`t$($TotalFilesSuccess)"
echo "TotalFailureCount: `t`t`t`t`t$($totalFailure)"
echo "ContinuationToken: `t`t`t`t`t$($token)"
echo "FailedEntries:"$($FailedEntries | ft)
Questo script rimuoverà l'ACL in modo ricorsivo nel blocco di directory per blocco, con dimensioni del blocco come BatchSize * MaxBatchCount. Le dimensioni del blocco sono pari a 50000 in questo script.
Esempio 4: Rimuovere ACL in modo ricorsivo in una directory e ContinueOnFailure, quindi riprendere da errori uno alla sola
$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
}
Questo comando rimuove prima L'ACL in modo ricorsivo in una directory con ContinueOnFailure e alcuni elementi non sono riusciti, quindi riprendono gli elementi non riusciti uno alla volta.
Parametri
-Acl
Elenco di controllo di accesso POSIX da impostare in modo ricorsivo per il file o la directory.
Type: | PSPathAccessControlEntry[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AsJob
Eseguire il cmdlet in background
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BatchSize
Se le dimensioni del set di dati superano le dimensioni del batch, l'operazione verrà suddivisa in più richieste in modo che sia possibile tenere traccia dello stato di avanzamento. Le dimensioni del batch devono essere comprese tra 1 e 2000. Il valore predefinito è 2000.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Context
oggetto Context Archiviazione di Azure
Type: | IStorageContext |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ContinuationToken
Token di continuazione.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ContinueOnFailure
Impostare questo parametro per ignorare gli errori e continuare la procedura con l'operazione su altre sottoentità della directory. Per impostazione predefinita, l'operazione verrà terminata rapidamente in caso di errori.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Le credenziali, l’account, il tenant e la sottoscrizione usati per comunicare con Azure.
Type: | IAzureContextContainer |
Aliases: | AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FileSystem
Nome filesystem
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MaxBatchCount
Numero massimo di batch che possono essere eseguiti da una singola modifica Controllo di accesso'operazione. Se le dimensioni del set di dati superano maxBatchCount moltiplicano BatchSize, verrà restituito il token di continuazione.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Percorso nel FileSystem specificato che per modificare Acl in modo ricorsivo. Può essere un file o una directory. Nel formato 'directory/file.txt' o 'directory1/directory2/'. Ignorare l'impostazione di questo parametro per modificare Acl in modo ricorsivo dalla directory radice del file system.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |