Aracılığıyla paylaş


Remove-AzDataLakeGen2AclRecursive

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

Sözdizimi

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.

Tür:PSPathAccessControlEntry[]
Position:Named
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-AsJob

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

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et: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.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Confirm

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

Tür:SwitchParameter
Diğer adlar:cf
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Context

Azure Depolama Bağlam Nesnesi

Tür:IStorageContext
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-ContinuationToken

Devamlılık Belirteci.

Tür:String
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et: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.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-DefaultProfile

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

Tür:IAzureContextContainer
Diğer adlar:AzureRmContext, AzureCredential
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-FileSystem

FileSystem adı

Tür:String
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et: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.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et: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.

Tür:String
Position:1
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-WhatIf

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

Tür:SwitchParameter
Diğer adlar:wi
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

Girişler

String

IStorageContext

Çıkışlar

String