Remove-AzDataLakeGen2AclRecursive

Belirtilen yolda özyinelemeli olarak ACL'yi kaldırın.

Syntax

Remove-AzDataLakeGen2AclRecursive
      [-FileSystem] <String>
      [[-Path] <String>]
      [-ContinuationToken <String>]
      -Acl <PSPathAccessControlEntry[]>
      [-ContinueOnFailure]
      [-BatchSize <Int32>]
      [-MaxBatchCount <Int32>]
      [-AsJob]
      [-Context <IStorageContext>]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Remove-AzDataLakeGen2AclRecursive cmdlet'i belirtilen yolda ACL'yi özyinelemeli olarak kaldırır. Giriş ACL girişleriyle (farklı izinlere sahip olsa bile) wil lbe'nin kaldırıldığı aynı AccessControlType, DefaultScope ve EntityId değerlerine sahip özgün ACL'deki ACL girişleri.

Örnekler

Örnek 1: Dosya sisteminin kök yönlendirmesinde ACL'yi özyinelemeli olarak kaldırma

$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               :

Bu komut önce 2 acl girişi olan bir ACL nesnesi oluşturur, ardından bir dosya sisteminin kök dizininde ACL'yi özyinelemeli olarak kaldırır.

Örnek 2: Dizinde ACL'yi özyinelemeli olarak kaldırma

$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               :

Bu komut önce bir dizindeki ACL'yi özyinelemeli olarak kaldırır ve başarısız olur, ardından kullanıcı başarısız dosyayı düzelttikte ContinuationToken ile devam eder.

Örnek 3: Öbeklere göre özyinelemeli olarak ACL'yi kaldırma

$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)

Bu betik, yığın boyutu BatchSize * MaxBatchCount olarak olacak şekilde dizin öbekleri üzerindeki ACL'yi özyinelemeli olarak kaldırır. Bu betikte öbek boyutu 50000'dir.

Örnek 4: Bir dizinde ve ContinueOnFailure'da özyinelemeli olarak ACL'yi kaldırın, ardından hatalardan birer birer devam edin

$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
        }

Bu komut önce ContinueOnFailure ile bir dizine özyinelemeli olarak ACL'yi kaldırır ve bazı öğeler başarısız olur, ardından başarısız olan öğeleri tek tek sürdürür.

Parametreler

-Acl

Dosya veya dizin için özyinelemeli olarak ayarlanacağı POSIX erişim denetimi listesi.

Type:PSPathAccessControlEntry[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-AsJob

Cmdlet'i arka planda çalıştırma

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BatchSize

Veri kümesi boyutu toplu iş boyutunu aşarsa, ilerlemenin izlenebilmesi için işlem birden çok isteğe bölünür. Toplu iş boyutu 1 ile 2000 arasında olmalıdır. Varsayılan değer 2000'dir.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Cmdlet'i çalıştırmadan önce sizden onay ister.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Context

Azure Depolama Bağlam Nesnesi

Type:IStorageContext
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ContinuationToken

Devamlılık Belirteci.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContinueOnFailure

Bu parametreyi hataları yoksayacak ve dizinin diğer alt varlıklarında işlemle çalışmaya devam etmek için ayarlayın. Varsayılan olarak işlem hatalarla karşılaşıldığında hızla sonlandırılır.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Azure ile iletişim için kullanılan kimlik bilgileri, hesap, kiracı ve abonelik.

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FileSystem

FileSystem adı

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-MaxBatchCount

Tek değişiklik Erişim Denetimi işleminin yürütebileceği en fazla toplu işlem sayısı. Veri kümesi boyutu MaxBatchCount batchSize çarpmasını aşarsa, devamlılık belirteci döndürülecektir.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Belirtilen FileSystem'da Acl'yi yinelemeli olarak değiştirecek yol. Dosya veya dizin olabilir. 'directory/file.txt' veya 'directory1/directory2/' biçiminde. Acl'yi Dosya Sisteminin kök dizininden özyinelemeli olarak değiştirmek için bu parametreyi ayarlamayı atlayın.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmaz.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Girişler

String

IStorageContext

Çıkışlar

String