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
Çıkışlar
Azure PowerShell